diff --git a/ValheimClient/BepInEx/config/BepInEx.cfg b/ValheimClient/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..a0d5126 --- /dev/null +++ b/ValheimClient/BepInEx/config/BepInEx.cfg @@ -0,0 +1,153 @@ +[Caching] + +## Enable/disable assembly metadata cache +## Enabling this will speed up discovery of plugins and patchers by caching the metadata of all types BepInEx discovers. +# Setting type: Boolean +# Default value: true +EnableAssemblyCache = true + +[Chainloader] + +## If enabled, hides BepInEx Manager GameObject from Unity. +## This can fix loading issues in some games that attempt to prevent BepInEx from being loaded. +## Use this only if you know what this option means, as it can affect functionality of some older plugins. +## +# Setting type: Boolean +# Default value: false +HideManagerGameObject = false + +[Harmony.Logger] + +## Specifies which Harmony log channels to listen to. +## NOTE: IL channel dumps the whole patch methods, use only when needed! +# Setting type: LogChannel +# Default value: Warn, Error +# Acceptable values: None, Info, IL, Warn, Error, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogChannels = Warn, Error + +[Logging] + +## Enables showing unity log messages in the BepInEx logging system. +# Setting type: Boolean +# Default value: true +UnityLogListening = true + +## If enabled, writes Standard Output messages to Unity log +## NOTE: By default, Unity does so automatically. Only use this option if no console messages are visible in Unity log +## +# Setting type: Boolean +# Default value: false +LogConsoleToUnityLog = false + +[Logging.Console] + +## Enables showing a console for log output. +# Setting type: Boolean +# Default value: false +Enabled = false + +## If enabled, will prevent closing the console (either by deleting the close button or in other platform-specific way). +# Setting type: Boolean +# Default value: false +PreventClose = false + +## If true, console is set to the Shift-JIS encoding, otherwise UTF-8 encoding. +# Setting type: Boolean +# Default value: false +ShiftJisEncoding = false + +## Hints console manager on what handle to assign as StandardOut. Possible values: +## Auto - lets BepInEx decide how to redirect console output +## ConsoleOut - prefer redirecting to console output; if possible, closes original standard output +## StandardOut - prefer redirecting to standard output; if possible, closes console out +## +# Setting type: ConsoleOutRedirectType +# Default value: Auto +# Acceptable values: Auto, ConsoleOut, StandardOut +StandardOutType = Auto + +## Which log levels to show in the console output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +ForceBepInExTTYDriver = true + +[Logging.Disk] + +## Include unity log messages in log file output. +# Setting type: Boolean +# Default value: false +WriteUnityLog = true + +## Appends to the log file instead of overwriting, on game startup. +# Setting type: Boolean +# Default value: false +AppendLog = false + +## Enables writing log messages to disk. +# Setting type: Boolean +# Default value: true +Enabled = true + +## Which log leves are saved to the disk log output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +[Preloader] + +## Enables or disables runtime patches. +## This should always be true, unless you cannot start the game due to a Harmony related issue (such as running .NET Standard runtime) or you know what you're doing. +# Setting type: Boolean +# Default value: true +ApplyRuntimePatches = true + +## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend. +## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting. +# Setting type: MonoModBackend +# Default value: auto +# Acceptable values: auto, dynamicmethod, methodbuilder, cecil +HarmonyBackend = auto + +## If enabled, BepInEx will save patched assemblies into BepInEx/DumpedAssemblies. +## This can be used by developers to inspect and debug preloader patchers. +# Setting type: Boolean +# Default value: false +DumpAssemblies = false + +## If enabled, BepInEx will load patched assemblies from BepInEx/DumpedAssemblies instead of memory. +## This can be used to be able to load patched assemblies into debuggers like dnSpy. +## If set to true, will override DumpAssemblies. +# Setting type: Boolean +# Default value: false +LoadDumpedAssemblies = false + +## If enabled, BepInEx will call Debugger.Break() once before loading patched assemblies. +## This can be used with debuggers like dnSpy to install breakpoints into patched assemblies before they are loaded. +# Setting type: Boolean +# Default value: false +BreakBeforeLoadAssemblies = false + +[Preloader.Entrypoint] + +## The local filename of the assembly to target. +# Setting type: String +# Default value: UnityEngine.CoreModule.dll +Assembly = UnityEngine.CoreModule.dll + +## The name of the type in the entrypoint assembly to search for the entrypoint method. +# Setting type: String +# Default value: Application +Type = Application + +## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. +# Setting type: String +# Default value: .cctor +Method = .cctor + diff --git a/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment.cfg b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment.cfg new file mode 100644 index 0000000..996cfaf --- /dev/null +++ b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment.cfg @@ -0,0 +1,10 @@ +## Settings file was created by plugin JudesEquipment v1.4.0 +## Plugin GUID: GoldenJude_JudesEquipment + +[Sync] + +## 1 = enabled, 0 = disabled +# Setting type: Int32 +# Default value: 1 +Sync configs = 1 + diff --git a/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_ItemConfig.cfg b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_ItemConfig.cfg new file mode 100644 index 0000000..0931ebd --- /dev/null +++ b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_ItemConfig.cfg @@ -0,0 +1,1096 @@ +[Barbarian Armor - Cape] + +# Setting type: Int32 +# Default value: 4 +Weight = 4 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 1 +Base Armor = 1 + +# Setting type: Int32 +# Default value: 1 +Armor per level = 1 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 400 +Base durability = 400 + +# Setting type: Int32 +# Default value: 50 +Durability per level = 50 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Barbarian Armor - Chest] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 8 +Base Armor = 8 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Barbarian Armor - Helmet] + +# Setting type: Int32 +# Default value: 3 +Weight = 3 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 8 +Base Armor = 8 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Barbarian Armor - Legs] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 8 +Base Armor = 8 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Dragonslayer Armor - Chest] + +# Setting type: Int32 +# Default value: 20 +Weight = 20 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 25 +Base Armor = 25 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Dragonslayer Armor - Helmet] + +# Setting type: Int32 +# Default value: 5 +Weight = 5 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 25 +Base Armor = 25 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Dragonslayer Armor - Legs] + +# Setting type: Int32 +# Default value: 20 +Weight = 20 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 25 +Base Armor = 25 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Mistlands Armor - Chest] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 32 +Base Armor = 32 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: Frost:Resistant +Damage modifiers = Frost:Resistant + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Mistlands Armor - Helmet] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 32 +Base Armor = 32 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: Frost:Resistant +Damage modifiers = Frost:Resistant + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Mistlands Armor - Legs] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 32 +Base Armor = 32 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: Frost:Resistant +Damage modifiers = Frost:Resistant + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Nomad Armor - Chest] + +# Setting type: Int32 +# Default value: 6 +Weight = 6 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 20 +Base Armor = 20 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Nomad Armor - Helmet] + +# Setting type: Int32 +# Default value: 3 +Weight = 3 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 20 +Base Armor = 20 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Nomad Armor - Legs] + +# Setting type: Int32 +# Default value: 6 +Weight = 6 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 20 +Base Armor = 20 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Plate Armor - Chest] + +# Setting type: Int32 +# Default value: 15 +Weight = 15 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 14 +Base Armor = 14 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1200 +Base durability = 1200 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Plate Armor - Helmet] + +# Setting type: Int32 +# Default value: 3 +Weight = 3 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 14 +Base Armor = 14 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1200 +Base durability = 1200 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Plate Armor - Legs] + +# Setting type: Int32 +# Default value: 15 +Weight = 15 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 14 +Base Armor = 14 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1200 +Base durability = 1200 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Simple backpack] + +# Setting type: Int32 +# Default value: 5 +Weight = 5 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 0 +Base Armor = 0 + +# Setting type: Int32 +# Default value: 0 +Armor per level = 0 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: true +Destroy broken = true + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 50 +Base durability = 50 + +# Setting type: Int32 +# Default value: 25 +Durability per level = 25 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +# Setting type: Int32 +# Default value: 100 +Carry weight bonus = 100 + +[Wanderer Armor - Cape] + +# Setting type: Int32 +# Default value: 3 +Weight = 3 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 1 +Base Armor = 1 + +# Setting type: Int32 +# Default value: 1 +Armor per level = 1 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: Fire:Weak;Frost:Resistant +Damage modifiers = Fire:Weak;Frost:Resistant + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 300 +Base durability = 300 + +# Setting type: Int32 +# Default value: 100 +Durability per level = 100 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Wanderer Armor - Chest] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 26 +Base Armor = 26 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Wanderer Armor - Helmet] + +# Setting type: Int32 +# Default value: 3 +Weight = 3 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 26 +Base Armor = 26 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: 0 +Movement speed modifier = 0 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + +[Wanderer Armor - Legs] + +# Setting type: Int32 +# Default value: 10 +Weight = 10 + +# Setting type: Boolean +# Default value: true +Teleportable = true + +# Setting type: Int32 +# Default value: 4 +Maximum upgrade level = 4 + +# Setting type: Int32 +# Default value: 26 +Base Armor = 26 + +# Setting type: Int32 +# Default value: 2 +Armor per level = 2 + +## Damage modifiers are in the format: [DamageType1]:[DamageModifier1];[DamageType2]:[DamageModifier2]; ... Valid damage type names: Blunt, Slash, Pierce, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit, Physical, Elemental ... Valid modifier names: Normal, Resistant, Weak, Immune, Ignore, VeryResistant, VeryWeak +# Setting type: String +# Default value: +Damage modifiers = + +# Setting type: Boolean +# Default value: false +Destroy broken = false + +# Setting type: Boolean +# Default value: true +Repairable = true + +## Set to 0 for indestructibility +# Setting type: Int32 +# Default value: 1000 +Base durability = 1000 + +# Setting type: Int32 +# Default value: 200 +Durability per level = 200 + +# Setting type: Int32 +# Default value: -5 +Movement speed modifier = -5 + +# Setting type: Single +# Default value: 1 +Equip time = 1 + diff --git a/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_LocalizationConfig.cfg b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_LocalizationConfig.cfg new file mode 100644 index 0000000..af530ff --- /dev/null +++ b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_LocalizationConfig.cfg @@ -0,0 +1,5780 @@ +[Abenaki] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Bulgarian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Chinese] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Croatian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Czech] + +# Setting type: String +# Default value: Barbarova přilba +ArmorBarbarianBronzeHelmetJD = Barbarova přilba + +# Setting type: String +# Default value: Přilba z bronzové slitiny +ArmorBarbarianBronzeHelmetJD_description = Přilba z bronzové slitiny + +# Setting type: String +# Default value: Barbarova zbroj +ArmorBarbarianBronzeChestJD = Barbarova zbroj + +# Setting type: String +# Default value: Bronzový disk připevněny ke koženým popruhům, pravý barabr se vrhá do boje i přes nedostatek ochrany +ArmorBarbarianBronzeChestJD_description = Bronzový disk připevněny ke koženým popruhům, pravý barabr se vrhá do boje i přes nedostatek ochrany + +# Setting type: String +# Default value: Barbarův opasek +ArmorBarbarianBronzeLegsJD = Barbarův opasek + +# Setting type: String +# Default value: Tlustá kožešina ovázaná kolem pasu a upevněna pohledným bronzovým popruhem +ArmorBarbarianBronzeLegsJD_description = Tlustá kožešina ovázaná kolem pasu a upevněna pohledným bronzovým popruhem + +# Setting type: String +# Default value: Barbarův kožešinový plášť +ArmorBarbarianCapeJD = Barbarův kožešinový plášť + +# Setting type: String +# Default value: Tlustý, ale krátký plášť z kožešiny, chrání záda, když opilý spolunájezdníci nemohou +ArmorBarbarianCapeJD_description = Tlustý, ale krátký plášť z kožešiny, chrání záda, když opilý spolunájezdníci nemohou + +# Setting type: String +# Default value: Nomádská přilba +ArmorBlackmetalgarbHelmet = Nomádská přilba + +# Setting type: String +# Default value: Přilba z černokovu s barevným polstrováním sedící na nomáda +ArmorBlackmetalgarbHelmet_description = Přilba z černokovu s barevným polstrováním sedící na nomáda + +# Setting type: String +# Default value: Nomádský oděv +ArmorBlackmetalgarbChest = Nomádský oděv + +# Setting type: String +# Default value: Nomádský oděv ověšený ochranou z černokovu, jenž je v nomádím domově, pláních, hojno +ArmorBlackmetalgarbChest_description = Nomádský oděv ověšený ochranou z černokovu, jenž je v nomádím domově, pláních, hojno + +# Setting type: String +# Default value: Nomádská obuv +ArmorBlackmetalgarbLegs = Nomádská obuv + +# Setting type: String +# Default value: Silné kožené boty s černokovovou špičkou, užitečné když se stane, že na vlastníka dupne lox +ArmorBlackmetalgarbLegs_description = Silné kožené boty s černokovovou špičkou, užitečné když se stane, že na vlastníka dupne lox + +# Setting type: String +# Default value: Pevná přilba +ArmorPlateIronHelmetJD = Pevná přilba + +# Setting type: String +# Default value: Odolná helma s koženou ochranou krku +ArmorPlateIronHelmetJD_description = Odolná helma s koženou ochranou krku + +# Setting type: String +# Default value: Plátová zbroj +ArmorPlateIronChestJD = Plátová zbroj + +# Setting type: String +# Default value: Silné kovové pláty přinýtované ke koženému postroji +ArmorPlateIronChestJD_description = Silné kovové pláty přinýtované ke koženému postroji + +# Setting type: String +# Default value: Plátové holenice +ArmorPlateIronLegsJD = Plátové holenice + +# Setting type: String +# Default value: Spolehlivé holenice s chráničy kolen +ArmorPlateIronLegsJD_description = Spolehlivé holenice s chráničy kolen + +# Setting type: String +# Default value: Drakobijcova přilba +ArmorDragonslayerHelmet = Drakobijcova přilba + +# Setting type: String +# Default value: Draci se klepou strachy když vidí tu začerněno přilbu ozdobenou rohy jejich vlastních +ArmorDragonslayerHelmet_description = Draci se klepou strachy když vidí tu začerněno přilbu ozdobenou rohy jejich vlastních + +# Setting type: String +# Default value: Drakobijcova zbroj +ArmorDragonslayerChest = Drakobijcova zbroj + +# Setting type: String +# Default value: Obsidiánová vrstva na stříbrných plátech poskytuje spolehlivou ochranu +ArmorDragonslayerChest_description = Obsidiánová vrstva na stříbrných plátech poskytuje spolehlivou ochranu + +# Setting type: String +# Default value: Špičaté holenice +ArmorDragonslayerLegs = Špičaté holenice + +# Setting type: String +# Default value: Kdokoliv se ocitne v jejich cestě bude mít špatný den +ArmorDragonslayerLegs_description = Kdokoliv se ocitne v jejich cestě bude mít špatný den + +# Setting type: String +# Default value: Tulákův slamník +ArmorWandererHelmet = Tulákův slamník + +# Setting type: String +# Default value: Vyztužený slamník +ArmorWandererHelmet_description = Vyztužený slamník + +# Setting type: String +# Default value: Tulákova plátová vesta +ArmorWandererChest = Tulákova plátová vesta + +# Setting type: String +# Default value: Malé kovové pláty přišité na koženou vestu, lehké na údržbu při cestách +ArmorWandererChest_description = Malé kovové pláty přišité na koženou vestu, lehké na údržbu při cestách + +# Setting type: String +# Default value: Tulákovy kalhoty +ArmorWandererLegs = Tulákovy kalhoty + +# Setting type: String +# Default value: Odolné kalhoty s provizorní ochranou okolo holení +ArmorWandererLegs_description = Odolné kalhoty s provizorní ochranou okolo holení + +# Setting type: String +# Default value: Slaměný plášť +ArmorWandererCape = Slaměný plášť + +# Setting type: String +# Default value: Levný na vytvoření plášť ze slámy posbírané v pláních, ochrání proti živlům ale lehce lehne popelem +ArmorWandererCape_description = Levný na vytvoření plášť ze slámy posbírané v pláních, ochrání proti živlům ale lehce lehne popelem + +# Setting type: String +# Default value: Mlhokrajná prilba +ArmorMistlandsHelmet = Mlhokrajná prilba + +# Setting type: String +# Default value: Helma ukována ze vzácného materiálu nalezitelného pouze v mlžných krajích +ArmorMistlandsHelmet_description = Helma ukována ze vzácného materiálu nalezitelného pouze v mlžných krajích + +# Setting type: String +# Default value: Mlhokrajná zbroj +ArmorMistlandsChest = Mlhokrajná zbroj + +# Setting type: String +# Default value: Tlustá vícevrstvá přošívanice chrání před žhavým plamenokovem, který zase chrání před údery +ArmorMistlandsChest_description = Tlustá vícevrstvá přošívanice chrání před žhavým plamenokovem, který zase chrání před údery + +# Setting type: String +# Default value: Mlhokrajné holenice +ArmorMistlandsLegs = Mlhokrajné holenice + +# Setting type: String +# Default value: Při nošení těchto holenic nachlazení určite nehrozí +ArmorMistlandsLegs_description = Při nošení těchto holenic nachlazení určite nehrozí + +# Setting type: String +# Default value: Prostý batoh +BackpackSimple = Prostý batoh + +# Setting type: String +# Default value: Kožená nádoba přivázaná k dřevěnému rámu +BackpackSimple_description = Kožená nádoba přivázaná k dřevěnému rámu + +[Danish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Dutch] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[English] + +# Setting type: String +# Default value: Barbarian\'s helmet +ArmorBarbarianBronzeHelmetJD = Barbarian\'s helmet + +# Setting type: String +# Default value: Helmet made of a bronze alloy +ArmorBarbarianBronzeHelmetJD_description = Helmet made of a bronze alloy + +# Setting type: String +# Default value: Barbarian\'s armor +ArmorBarbarianBronzeChestJD = Barbarian\'s armor + +# Setting type: String +# Default value: A bronze disc attached to leather straps, a true barbarian hurls himself into battle despite the lack of protection +ArmorBarbarianBronzeChestJD_description = A bronze disc attached to leather straps, a true barbarian hurls himself into battle despite the lack of protection + +# Setting type: String +# Default value: Barbarian\'s belt +ArmorBarbarianBronzeLegsJD = Barbarian\'s belt + +# Setting type: String +# Default value: Thick hide wrapped around one\'s waist, fastened with a fashionable bronze belt +ArmorBarbarianBronzeLegsJD_description = Thick hide wrapped around one\'s waist, fastened with a fashionable bronze belt + +# Setting type: String +# Default value: Barbarian\'s fur cape +ArmorBarbarianCapeJD = Barbarian\'s fur cape + +# Setting type: String +# Default value: Thick but short cape made of fur. Covers ones back when his drunk raidmates can\'t. +ArmorBarbarianCapeJD_description = Thick but short cape made of fur. Covers ones back when his drunk raidmates can\'t. + +# Setting type: String +# Default value: Nomadic helmet +ArmorBlackmetalgarbHelmet = Nomadic helmet + +# Setting type: String +# Default value: Helmet made of blackmetal with colorful padding fit for a nomad +ArmorBlackmetalgarbHelmet_description = Helmet made of blackmetal with colorful padding fit for a nomad + +# Setting type: String +# Default value: Nomadic garb +ArmorBlackmetalgarbChest = Nomadic garb + +# Setting type: String +# Default value: A nomadic garb adorned with protective elements made of blackmetal, found commonly in the nomad\'s homeland, the plains +ArmorBlackmetalgarbChest_description = A nomadic garb adorned with protective elements made of blackmetal, found commonly in the nomad\'s homeland, the plains + +# Setting type: String +# Default value: Nomadic boots +ArmorBlackmetalgarbLegs = Nomadic boots + +# Setting type: String +# Default value: Thick leather boots with blackmetal toe guard, helpful when one happens to get stomped on by a Lox +ArmorBlackmetalgarbLegs_description = Thick leather boots with blackmetal toe guard, helpful when one happens to get stomped on by a Lox + +# Setting type: String +# Default value: Sturdy helmet +ArmorPlateIronHelmetJD = Sturdy helmet + +# Setting type: String +# Default value: A sturdy helmet with a leather neckguard +ArmorPlateIronHelmetJD_description = A sturdy helmet with a leather neckguard + +# Setting type: String +# Default value: Plate mail +ArmorPlateIronChestJD = Plate mail + +# Setting type: String +# Default value: Thick plates of metal riveted to a leather harness +ArmorPlateIronChestJD_description = Thick plates of metal riveted to a leather harness + +# Setting type: String +# Default value: Plate greaves +ArmorPlateIronLegsJD = Plate greaves + +# Setting type: String +# Default value: Reliable greaves and kneeguards +ArmorPlateIronLegsJD_description = Reliable greaves and kneeguards + +# Setting type: String +# Default value: Dragonslayer\'s helm +ArmorDragonslayerHelmet = Dragonslayer\'s helm + +# Setting type: String +# Default value: Dragon\'s tremble in fear when they see the blackened helmet adorned with the horns of their kin +ArmorDragonslayerHelmet_description = Dragon\'s tremble in fear when they see the blackened helmet adorned with the horns of their kin + +# Setting type: String +# Default value: Dragonslayer\'s armor +ArmorDragonslayerChest = Dragonslayer\'s armor + +# Setting type: String +# Default value: Obsidian layer over silver plates provides reliable protection +ArmorDragonslayerChest_description = Obsidian layer over silver plates provides reliable protection + +# Setting type: String +# Default value: Spiked greaves +ArmorDragonslayerLegs = Spiked greaves + +# Setting type: String +# Default value: Unlucky is he who finds himself in the way of these +ArmorDragonslayerLegs_description = Unlucky is he who finds himself in the way of these + +# Setting type: String +# Default value: Wanderer\'s straw hat +ArmorWandererHelmet = Wanderer\'s straw hat + +# Setting type: String +# Default value: A reinforced straw hat +ArmorWandererHelmet_description = A reinforced straw hat + +# Setting type: String +# Default value: Wanderer\'s coat of plates +ArmorWandererChest = Wanderer\'s coat of plates + +# Setting type: String +# Default value: Small metal plates attached to a leather jerkin, easy to maintain during travels +ArmorWandererChest_description = Small metal plates attached to a leather jerkin, easy to maintain during travels + +# Setting type: String +# Default value: Wanderer\'s pants +ArmorWandererLegs = Wanderer\'s pants + +# Setting type: String +# Default value: Durable pants with makeshift protection around the shins +ArmorWandererLegs_description = Durable pants with makeshift protection around the shins + +# Setting type: String +# Default value: Straw cape +ArmorWandererCape = Straw cape + +# Setting type: String +# Default value: Cheap to make cape made from straw collected in the plains, protects against the elements but is quick to catch fire +ArmorWandererCape_description = Cheap to make cape made from straw collected in the plains, protects against the elements but is quick to catch fire + +# Setting type: String +# Default value: Mistlands helmet +ArmorMistlandsHelmet = Mistlands helmet + +# Setting type: String +# Default value: Helmet made from a rare material only found within the mistlands +ArmorMistlandsHelmet_description = Helmet made from a rare material only found within the mistlands + +# Setting type: String +# Default value: Mistlands armor +ArmorMistlandsChest = Mistlands armor + +# Setting type: String +# Default value: Thick, multi layered gambeson provides protection from the searing heat of flametal, which in turns protects from blows +ArmorMistlandsChest_description = Thick, multi layered gambeson provides protection from the searing heat of flametal, which in turns protects from blows + +# Setting type: String +# Default value: Mistlands greaves +ArmorMistlandsLegs = Mistlands greaves + +# Setting type: String +# Default value: One need not fear the cold while wearing these +ArmorMistlandsLegs_description = One need not fear the cold while wearing these + +# Setting type: String +# Default value: Simple backpack +BackpackSimple = Simple backpack + +# Setting type: String +# Default value: Leather container attached to a wooden frame +BackpackSimple_description = Leather container attached to a wooden frame + +[Finnish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[French] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Georgian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[German] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Greek] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Hindi] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Hungarian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Icelandic] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Italian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Japanese] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Korean] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Lithuanian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Macedonian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Norwegian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Polish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Portuguese_Brazilian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Portuguese_European] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Romanian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Russian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Serbian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Slovak] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Spanish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Swedish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Thai] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Turkish] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + +[Ukrainian] + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeHelmetJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeChestJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD = + +# Setting type: String +# Default value: +ArmorBarbarianBronzeLegsJD_description = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD = + +# Setting type: String +# Default value: +ArmorBarbarianCapeJD_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbHelmet_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbChest_description = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs = + +# Setting type: String +# Default value: +ArmorBlackmetalgarbLegs_description = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD = + +# Setting type: String +# Default value: +ArmorPlateIronHelmetJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD = + +# Setting type: String +# Default value: +ArmorPlateIronChestJD_description = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD = + +# Setting type: String +# Default value: +ArmorPlateIronLegsJD_description = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet = + +# Setting type: String +# Default value: +ArmorDragonslayerHelmet_description = + +# Setting type: String +# Default value: +ArmorDragonslayerChest = + +# Setting type: String +# Default value: +ArmorDragonslayerChest_description = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs = + +# Setting type: String +# Default value: +ArmorDragonslayerLegs_description = + +# Setting type: String +# Default value: +ArmorWandererHelmet = + +# Setting type: String +# Default value: +ArmorWandererHelmet_description = + +# Setting type: String +# Default value: +ArmorWandererChest = + +# Setting type: String +# Default value: +ArmorWandererChest_description = + +# Setting type: String +# Default value: +ArmorWandererLegs = + +# Setting type: String +# Default value: +ArmorWandererLegs_description = + +# Setting type: String +# Default value: +ArmorWandererCape = + +# Setting type: String +# Default value: +ArmorWandererCape_description = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet = + +# Setting type: String +# Default value: +ArmorMistlandsHelmet_description = + +# Setting type: String +# Default value: +ArmorMistlandsChest = + +# Setting type: String +# Default value: +ArmorMistlandsChest_description = + +# Setting type: String +# Default value: +ArmorMistlandsLegs = + +# Setting type: String +# Default value: +ArmorMistlandsLegs_description = + +# Setting type: String +# Default value: +BackpackSimple = + +# Setting type: String +# Default value: +BackpackSimple_description = + diff --git a/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_RecipeConfig.cfg b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_RecipeConfig.cfg new file mode 100644 index 0000000..1b9f840 --- /dev/null +++ b/ValheimClient/BepInEx/config/GoldenJude_JudesEquipment_RecipeConfig.cfg @@ -0,0 +1,735 @@ +[Barbarian Armor - Cape] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: piece_workbench +Crafting station = piece_workbench + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: DeerHide;4;4 +Item requirement 1 = DeerHide;4;4 + +# Setting type: String +# Default value: BoneFragments;5;5 +Item requirement 2 = BoneFragments;5;5 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Barbarian Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Bronze;5;3 +Item requirement 1 = Bronze;5;3 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Barbarian Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Bronze;5;3 +Item requirement 1 = Bronze;5;3 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Barbarian Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Bronze;5;3 +Item requirement 1 = Bronze;5;3 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Dragonslayer Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Silver;15;5 +Item requirement 1 = Silver;15;5 + +# Setting type: String +# Default value: WolfPelt;10;5 +Item requirement 2 = WolfPelt;10;5 + +# Setting type: String +# Default value: Obsidian;10;5 +Item requirement 3 = Obsidian;10;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Dragonslayer Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Silver;20;5 +Item requirement 1 = Silver;20;5 + +# Setting type: String +# Default value: WolfPelt;10;5 +Item requirement 2 = WolfPelt;10;5 + +# Setting type: String +# Default value: Obsidian;10;5 +Item requirement 3 = Obsidian;10;5 + +# Setting type: String +# Default value: TrophyHatchling;2;0 +Item requirement 4 = TrophyHatchling;2;0 + +[Dragonslayer Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Silver;15;5 +Item requirement 1 = Silver;15;5 + +# Setting type: String +# Default value: WolfPelt;10;5 +Item requirement 2 = WolfPelt;10;5 + +# Setting type: String +# Default value: Obsidian;10;5 +Item requirement 3 = Obsidian;10;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Mistlands Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Flametal;15;5 +Item requirement 1 = Flametal;15;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;10;0 +Item requirement 3 = LinenThread;10;0 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Mistlands Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Flametal;15;5 +Item requirement 1 = Flametal;15;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;10;0 +Item requirement 3 = LinenThread;10;0 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Mistlands Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Flametal;15;5 +Item requirement 1 = Flametal;15;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;10;0 +Item requirement 3 = LinenThread;10;0 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Nomad Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: BlackMetal;20;5 +Item requirement 1 = BlackMetal;20;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;20;5 +Item requirement 3 = LinenThread;20;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Nomad Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: BlackMetal;20;5 +Item requirement 1 = BlackMetal;20;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;20;5 +Item requirement 3 = LinenThread;20;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Nomad Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: BlackMetal;20;5 +Item requirement 1 = BlackMetal;20;5 + +# Setting type: String +# Default value: LoxPelt;10;5 +Item requirement 2 = LoxPelt;10;5 + +# Setting type: String +# Default value: LinenThread;20;5 +Item requirement 3 = LinenThread;20;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Plate Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Iron;20;5 +Item requirement 1 = Iron;20;5 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Plate Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Iron;20;5 +Item requirement 1 = Iron;20;5 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Plate Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Iron;20;5 +Item requirement 1 = Iron;20;5 + +# Setting type: String +# Default value: DeerHide;2;0 +Item requirement 2 = DeerHide;2;0 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Simple backpack] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: piece_workbench +Crafting station = piece_workbench + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Wood;20;5 +Item requirement 1 = Wood;20;5 + +# Setting type: String +# Default value: DeerHide;5;2 +Item requirement 2 = DeerHide;5;2 + +# Setting type: String +# Default value: LeatherScraps;10;5 +Item requirement 3 = LeatherScraps;10;5 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Wanderer Armor - Cape] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: piece_workbench +Crafting station = piece_workbench + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Flax;10;5 +Item requirement 1 = Flax;10;5 + +# Setting type: String +# Default value: LinenThread;5;1 +Item requirement 2 = LinenThread;5;1 + +# Setting type: String +# Default value: +Item requirement 3 = + +# Setting type: String +# Default value: +Item requirement 4 = + +[Wanderer Armor - Chest] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Iron;10;5 +Item requirement 1 = Iron;10;5 + +# Setting type: String +# Default value: LinenThread;10;2 +Item requirement 2 = LinenThread;10;2 + +# Setting type: String +# Default value: DeerHide;10;2 +Item requirement 3 = DeerHide;10;2 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Wanderer Armor - Helmet] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Flax;15;5 +Item requirement 1 = Flax;15;5 + +# Setting type: String +# Default value: Iron;10;5 +Item requirement 2 = Iron;10;5 + +# Setting type: String +# Default value: LinenThread;10;0 +Item requirement 3 = LinenThread;10;0 + +# Setting type: String +# Default value: +Item requirement 4 = + +[Wanderer Armor - Legs] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: String +# Default value: forge +Crafting station = forge + +# Setting type: Int32 +# Default value: 1 +Min station lvl = 1 + +# Setting type: Int32 +# Default value: 1 +Output amount = 1 + +## Item requirements are in the format [PrefabName];[InitialCost];[CostPerLevel] +# Setting type: String +# Default value: Iron;10;5 +Item requirement 1 = Iron;10;5 + +# Setting type: String +# Default value: LinenThread;10;2 +Item requirement 2 = LinenThread;10;2 + +# Setting type: String +# Default value: DeerHide;10;2 +Item requirement 3 = DeerHide;10;2 + +# Setting type: String +# Default value: +Item requirement 4 = + diff --git a/ValheimClient/BepInEx/config/HookGenPatcher.cfg b/ValheimClient/BepInEx/config/HookGenPatcher.cfg new file mode 100644 index 0000000..2e1a091 --- /dev/null +++ b/ValheimClient/BepInEx/config/HookGenPatcher.cfg @@ -0,0 +1,12 @@ +[General] + +## Assembly names to make mmhooks for, separate entries with : , +# Setting type: String +# Default value: Assembly-CSharp.dll +MMHOOKAssemblyNames = assembly_googleanalytics.dll,assembly_guiutils.dll,assembly_lux.dll,assembly_postprocessing.dll,assembly_simplemeshcombine.dll,assembly_steamworks.dll,assembly_sunshafts.dll,assembly_utils.dll,assembly_valheim.dll + +## Hash file using contents instead of size. Minor perfomance impact. +# Setting type: Boolean +# Default value: false +Preciser filehashing = false + diff --git a/ValheimClient/BepInEx/config/JotunnBackpacks.cfg b/ValheimClient/BepInEx/config/JotunnBackpacks.cfg new file mode 100644 index 0000000..e449da4 --- /dev/null +++ b/ValheimClient/BepInEx/config/JotunnBackpacks.cfg @@ -0,0 +1,76 @@ +## Settings file was created by plugin JotunnBackpacks v2.0.0 +## Plugin GUID: JotunnBackpacks + +[Local config] + +## Hotkey to open backpack. +# Setting type: KeyCode +# Default value: I +# Acceptable values: None, Backspace, Tab, Clear, Return, Pause, Escape, Space, Exclaim, DoubleQuote, Hash, Dollar, Percent, Ampersand, Quote, LeftParen, RightParen, Asterisk, Plus, Comma, Minus, Period, Slash, Alpha0, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon, Semicolon, Less, Equals, Greater, Question, At, LeftBracket, Backslash, RightBracket, Caret, Underscore, BackQuote, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket, Pipe, RightCurlyBracket, Tilde, Delete, Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod, KeypadDivide, KeypadMultiply, KeypadMinus, KeypadPlus, KeypadEnter, KeypadEquals, UpArrow, DownArrow, RightArrow, LeftArrow, Insert, Home, End, PageUp, PageDown, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock, CapsLock, ScrollLock, RightShift, LeftShift, RightControl, LeftControl, RightAlt, LeftAlt, RightCommand, RightApple, LeftCommand, LeftApple, LeftWindows, RightWindows, AltGr, Help, Print, SysReq, Break, Menu, Mouse0, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19, Joystick1Button0, Joystick1Button1, Joystick1Button2, Joystick1Button3, Joystick1Button4, Joystick1Button5, Joystick1Button6, Joystick1Button7, Joystick1Button8, Joystick1Button9, Joystick1Button10, Joystick1Button11, Joystick1Button12, Joystick1Button13, Joystick1Button14, Joystick1Button15, Joystick1Button16, Joystick1Button17, Joystick1Button18, Joystick1Button19, Joystick2Button0, Joystick2Button1, Joystick2Button2, Joystick2Button3, Joystick2Button4, Joystick2Button5, Joystick2Button6, Joystick2Button7, Joystick2Button8, Joystick2Button9, Joystick2Button10, Joystick2Button11, Joystick2Button12, Joystick2Button13, Joystick2Button14, Joystick2Button15, Joystick2Button16, Joystick2Button17, Joystick2Button18, Joystick2Button19, Joystick3Button0, Joystick3Button1, Joystick3Button2, Joystick3Button3, Joystick3Button4, Joystick3Button5, Joystick3Button6, Joystick3Button7, Joystick3Button8, Joystick3Button9, Joystick3Button10, Joystick3Button11, Joystick3Button12, Joystick3Button13, Joystick3Button14, Joystick3Button15, Joystick3Button16, Joystick3Button17, Joystick3Button18, Joystick3Button19, Joystick4Button0, Joystick4Button1, Joystick4Button2, Joystick4Button3, Joystick4Button4, Joystick4Button5, Joystick4Button6, Joystick4Button7, Joystick4Button8, Joystick4Button9, Joystick4Button10, Joystick4Button11, Joystick4Button12, Joystick4Button13, Joystick4Button14, Joystick4Button15, Joystick4Button16, Joystick4Button17, Joystick4Button18, Joystick4Button19, Joystick5Button0, Joystick5Button1, Joystick5Button2, Joystick5Button3, Joystick5Button4, Joystick5Button5, Joystick5Button6, Joystick5Button7, Joystick5Button8, Joystick5Button9, Joystick5Button10, Joystick5Button11, Joystick5Button12, Joystick5Button13, Joystick5Button14, Joystick5Button15, Joystick5Button16, Joystick5Button17, Joystick5Button18, Joystick5Button19, Joystick6Button0, Joystick6Button1, Joystick6Button2, Joystick6Button3, Joystick6Button4, Joystick6Button5, Joystick6Button6, Joystick6Button7, Joystick6Button8, Joystick6Button9, Joystick6Button10, Joystick6Button11, Joystick6Button12, Joystick6Button13, Joystick6Button14, Joystick6Button15, Joystick6Button16, Joystick6Button17, Joystick6Button18, Joystick6Button19, Joystick7Button0, Joystick7Button1, Joystick7Button2, Joystick7Button3, Joystick7Button4, Joystick7Button5, Joystick7Button6, Joystick7Button7, Joystick7Button8, Joystick7Button9, Joystick7Button10, Joystick7Button11, Joystick7Button12, Joystick7Button13, Joystick7Button14, Joystick7Button15, Joystick7Button16, Joystick7Button17, Joystick7Button18, Joystick7Button19, Joystick8Button0, Joystick8Button1, Joystick8Button2, Joystick8Button3, Joystick8Button4, Joystick8Button5, Joystick8Button6, Joystick8Button7, Joystick8Button8, Joystick8Button9, Joystick8Button10, Joystick8Button11, Joystick8Button12, Joystick8Button13, Joystick8Button14, Joystick8Button15, Joystick8Button16, Joystick8Button17, Joystick8Button18, Joystick8Button19 +Open Backpack = I + +## Hotkey to quickly drop backpack while on the run. +# Setting type: KeyCode +# Default value: Y +# Acceptable values: None, Backspace, Tab, Clear, Return, Pause, Escape, Space, Exclaim, DoubleQuote, Hash, Dollar, Percent, Ampersand, Quote, LeftParen, RightParen, Asterisk, Plus, Comma, Minus, Period, Slash, Alpha0, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon, Semicolon, Less, Equals, Greater, Question, At, LeftBracket, Backslash, RightBracket, Caret, Underscore, BackQuote, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket, Pipe, RightCurlyBracket, Tilde, Delete, Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod, KeypadDivide, KeypadMultiply, KeypadMinus, KeypadPlus, KeypadEnter, KeypadEquals, UpArrow, DownArrow, RightArrow, LeftArrow, Insert, Home, End, PageUp, PageDown, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock, CapsLock, ScrollLock, RightShift, LeftShift, RightControl, LeftControl, RightAlt, LeftAlt, RightCommand, RightApple, LeftCommand, LeftApple, LeftWindows, RightWindows, AltGr, Help, Print, SysReq, Break, Menu, Mouse0, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19, Joystick1Button0, Joystick1Button1, Joystick1Button2, Joystick1Button3, Joystick1Button4, Joystick1Button5, Joystick1Button6, Joystick1Button7, Joystick1Button8, Joystick1Button9, Joystick1Button10, Joystick1Button11, Joystick1Button12, Joystick1Button13, Joystick1Button14, Joystick1Button15, Joystick1Button16, Joystick1Button17, Joystick1Button18, Joystick1Button19, Joystick2Button0, Joystick2Button1, Joystick2Button2, Joystick2Button3, Joystick2Button4, Joystick2Button5, Joystick2Button6, Joystick2Button7, Joystick2Button8, Joystick2Button9, Joystick2Button10, Joystick2Button11, Joystick2Button12, Joystick2Button13, Joystick2Button14, Joystick2Button15, Joystick2Button16, Joystick2Button17, Joystick2Button18, Joystick2Button19, Joystick3Button0, Joystick3Button1, Joystick3Button2, Joystick3Button3, Joystick3Button4, Joystick3Button5, Joystick3Button6, Joystick3Button7, Joystick3Button8, Joystick3Button9, Joystick3Button10, Joystick3Button11, Joystick3Button12, Joystick3Button13, Joystick3Button14, Joystick3Button15, Joystick3Button16, Joystick3Button17, Joystick3Button18, Joystick3Button19, Joystick4Button0, Joystick4Button1, Joystick4Button2, Joystick4Button3, Joystick4Button4, Joystick4Button5, Joystick4Button6, Joystick4Button7, Joystick4Button8, Joystick4Button9, Joystick4Button10, Joystick4Button11, Joystick4Button12, Joystick4Button13, Joystick4Button14, Joystick4Button15, Joystick4Button16, Joystick4Button17, Joystick4Button18, Joystick4Button19, Joystick5Button0, Joystick5Button1, Joystick5Button2, Joystick5Button3, Joystick5Button4, Joystick5Button5, Joystick5Button6, Joystick5Button7, Joystick5Button8, Joystick5Button9, Joystick5Button10, Joystick5Button11, Joystick5Button12, Joystick5Button13, Joystick5Button14, Joystick5Button15, Joystick5Button16, Joystick5Button17, Joystick5Button18, Joystick5Button19, Joystick6Button0, Joystick6Button1, Joystick6Button2, Joystick6Button3, Joystick6Button4, Joystick6Button5, Joystick6Button6, Joystick6Button7, Joystick6Button8, Joystick6Button9, Joystick6Button10, Joystick6Button11, Joystick6Button12, Joystick6Button13, Joystick6Button14, Joystick6Button15, Joystick6Button16, Joystick6Button17, Joystick6Button18, Joystick6Button19, Joystick7Button0, Joystick7Button1, Joystick7Button2, Joystick7Button3, Joystick7Button4, Joystick7Button5, Joystick7Button6, Joystick7Button7, Joystick7Button8, Joystick7Button9, Joystick7Button10, Joystick7Button11, Joystick7Button12, Joystick7Button13, Joystick7Button14, Joystick7Button15, Joystick7Button16, Joystick7Button17, Joystick7Button18, Joystick7Button19, Joystick8Button0, Joystick8Button1, Joystick8Button2, Joystick8Button3, Joystick8Button4, Joystick8Button5, Joystick8Button6, Joystick8Button7, Joystick8Button8, Joystick8Button9, Joystick8Button10, Joystick8Button11, Joystick8Button12, Joystick8Button13, Joystick8Button14, Joystick8Button15, Joystick8Button16, Joystick8Button17, Joystick8Button18, Joystick8Button19 +Quickdrop Backpack = None + +## You can use a hotkey to quickly drop your equipped backpack in order to run faster away from danger. +# Setting type: Boolean +# Default value: false +Outward Mode = false + +[Server-enforceable config] + +## Backpack size (width, height). +## Max width is 8 unless you want to break things. +# Setting type: Vector2 +# Default value: {"x":6.0,"y":3.0} +Rugged Backpack Size = {"x":6.0,"y":3.0} + +## Backpack size (width, height). +## Max width is 8 unless you want to break things. +# Setting type: Vector2 +# Default value: {"x":6.0,"y":3.0} +Arctic Backpack Size = {"x":6.0,"y":3.0} + +## The weight of items stored in the backpack gets multiplied by this value. +# Setting type: Single +# Default value: 0.5 +# Acceptable value range: From 0 to 1 +Weight Multiplier = 0.25 + +## Increases your carry capacity by this much while wearing the backpack. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 300 +Rugged Backpack: Carry Bonus = 0 + +## Wearing the backpack slows you down by this much. +# Setting type: Single +# Default value: -0.15 +# Acceptable value range: From -1 to 0 +Rugged Backpack: Speed Modifier = -0.1 + +## Increases your carry capacity by this much while wearing the backpack. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 300 +Arctic Backpack: Carry Bonus = 0 + +## Wearing the backpack slows you down by this much. +# Setting type: Single +# Default value: -0.15 +# Acceptable value range: From -1 to 0 +Arctic Backpack: Speed Modifier = -0.1 + +## Wearing the backpack protects you against freezing/cold, just like capes. +# Setting type: Boolean +# Default value: true +Rugged: Prevent freezing/cold? = true + +## Wearing the backpack protects you against freezing/cold, just like capes. +# Setting type: Boolean +# Default value: true +Arctic: Prevent freezing/cold? = true + diff --git a/ValheimClient/BepInEx/config/ValheimLegends.cfg b/ValheimClient/BepInEx/config/ValheimLegends.cfg new file mode 100644 index 0000000..9883666 --- /dev/null +++ b/ValheimClient/BepInEx/config/ValheimLegends.cfg @@ -0,0 +1,420 @@ +## Settings file was created by plugin ValheimLegends v0.4.2 +## Plugin GUID: ValheimLegends + +[Class Modifiers] + +## Modifies the damage dealt by Dash +# Setting type: Single +# Default value: 1 +vl_svr_berserkerDash = 1 + +## Modifies the damage bonus from Berserk +# Setting type: Single +# Default value: 1 +vl_svr_berserkerBerserk = 1 + +## Modifies the damage bonus from Execute +# Setting type: Single +# Default value: 1 +vl_svr_berserkerExecute = 1 + +## Modifies the damage Bonus gained from missing health +# Setting type: Single +# Default value: 1 +vl_svr_berserkerBonusDamage = 1 + +## Decreases the stamina cost when using 2h weapons +# Setting type: Single +# Default value: 1 +vl_svr_berserkerBonus2h = 1 + +## Modifies the damage of Vines +# Setting type: Single +# Default value: 1 +vl_svr_druidVines = 1 + +## Modifies the amount healed by Regenerate +# Setting type: Single +# Default value: 1 +vl_svr_druidRegen = 1 + +## Modifies the damage of summoned Defenders +# Setting type: Single +# Default value: 1 +vl_svr_druidDefenders = 1 + +## Modifies the stamina regeneration from consuming seeds +# Setting type: Single +# Default value: 1 +vl_svr_druidBonusSeeds = 1 + +## Modifies the damage dealt by Seismic Slash +# Setting type: Single +# Default value: 1 +vl_svr_duelistSeismicSlash = 1 + +## Modifies the damage dealt by Riposte +# Setting type: Single +# Default value: 1 +vl_svr_duelistRiposte = 1 + +## Modifies the damage dealt by Hip Shot +# Setting type: Single +# Default value: 1 +vl_svr_duelistHipShot = 1 + +## Modifies the parry bonus +# Setting type: Single +# Default value: 1 +vl_svr_duelistBonusParry = 1 + +## Modifies the power of Weaken +# Setting type: Single +# Default value: 1 +vl_svr_enchanterWeaken = 1 + +## Modifies the duration of Charm +# Setting type: Single +# Default value: 1 +vl_svr_enchanterCharm = 1 + +## Modifies the duration of Biome buffs +# Setting type: Single +# Default value: 1 +vl_svr_enchanterBiome = 1 + +## Modifies the damage dealt by Biome Shock +# Setting type: Single +# Default value: 1 +vl_svr_enchanterBiomeShock = 1 + +## Modifies the amount of stamina gained when blocking elemental damage +# Setting type: Single +# Default value: 1 +vl_svr_enchanterBonusElementalBlock = 1 + +## Modifies the damage of elemental attacks caused by elemental touch +# Setting type: Single +# Default value: 1 +vl_svr_enchanterBonusElementalTouch = 1 + +## Modifies the damage and speed of Fireball +# Setting type: Single +# Default value: 1 +vl_svr_mageFireball = 1 + +## Modifies the damage of Frost Daggers +# Setting type: Single +# Default value: 1 +vl_svr_mageFrostDagger = 1 + +## Modifies the damage of Frost Nova +# Setting type: Single +# Default value: 1 +vl_svr_mageFrostNova = 1 + +## Modifies the damage of Inferno +# Setting type: Single +# Default value: 1 +vl_svr_mageInferno = 1 + +## Modifies the damage of Meteors +# Setting type: Single +# Default value: 1 +vl_svr_mageMeteor = 1 + +## Modifies the damage and force of Light +# Setting type: Single +# Default value: 1 +vl_svr_metavokerLight = 1 + +## Modifies the damage dealt by Replicas +# Setting type: Single +# Default value: 1 +vl_svr_metavokerReplica = 1 + +## Modifies the damage dealt by excess Warp energy +# Setting type: Single +# Default value: 1 +vl_svr_metavokerWarpDamage = 1 + +## Modifies the distance travelled when warping +## **WARNING: excessive warp distance can cause unpredictable results +# Setting type: Single +# Default value: 1 +vl_svr_metavokerWarpDistance = 1 + +## Modifies the stamina cost of safe fall +# Setting type: Single +# Default value: 1 +vl_svr_metavokerBonusSafeFallCost = 1 + +## Modifies the force and damage of Force Wall +# Setting type: Single +# Default value: 1 +vl_svr_metavokerBonusForceWave = 1 + +## Modifies the power of Chi Punch +# Setting type: Single +# Default value: 1 +vl_svr_monkChiPunch = 1 + +## Modifies the power of Chi Slam +# Setting type: Single +# Default value: 1 +vl_svr_monkChiSlam = 1 + +## Modifies the power of Chi Blast +# Setting type: Single +# Default value: 1 +vl_svr_monkChiBlast = 1 + +## Modifies the power of Flying Kick +# Setting type: Single +# Default value: 1 +vl_svr_monkFlyingKick = 1 + +## Modifies the block bonus while unarmed +# Setting type: Single +# Default value: 1 +vl_svr_monkBonusBlock = 1 + +## Modifies the health and stamina restored while Chi surging +# Setting type: Single +# Default value: 1 +vl_svr_monkSurge = 1 + +## Modifies the power of Heal +# Setting type: Single +# Default value: 1 +vl_svr_priestHeal = 1 + +## Modifies the healing amount of Purge +# Setting type: Single +# Default value: 1 +vl_svr_priestPurgeHeal = 1 + +## Modifies the damage amount of Purge +# Setting type: Single +# Default value: 1 +vl_svr_priestPurgeDamage = 1 + +## Modifies the power of Sanctify +# Setting type: Single +# Default value: 1 +vl_svr_priestSanctify = 1 + +## Modifies the cooldown of Dying Light +# Setting type: Single +# Default value: 1 +vl_svr_priestBonusDyingLightCooldown = 1 + +## Modifies the damage bonus of Power Shot +# Setting type: Single +# Default value: 1 +vl_svr_rangerPowerShot = 1 + +## Modifies the damage of Shadow Wolves +# Setting type: Single +# Default value: 1 +vl_svr_rangerShadowWolf = 1 + +## Modifies the movement speed from Shadow Stalk +# Setting type: Single +# Default value: 1 +vl_svr_rangerShadowStalk = 1 + +## Modifies the bonus from Poison Resitance +# Setting type: Single +# Default value: 1 +vl_svr_rangerBonusPoisonResistance = 1 + +## Modifies the bonus stamina reduction while running +# Setting type: Single +# Default value: 1 +vl_svr_rangerBonusRunCost = 1 + +## Modifies the damage of Backstab +# Setting type: Single +# Default value: 1 +vl_svr_rogueBackstab = 1 + +## Modifies the cooldown of Fade +# Setting type: Single +# Default value: 1 +vl_svr_rogueFadeCooldown = 1 + +## Modifies the damage dealt by Poison Bomb +# Setting type: Single +# Default value: 1 +vl_svr_roguePoisonBomb = 1 + +## Modifies the damage dealt by Throwing knives +# Setting type: Single +# Default value: 1 +vl_svr_rogueBonusThrowingDagger = 1 + +## Modifies the power of Spirit Shock +# Setting type: Single +# Default value: 1 +vl_svr_shamanSpiritShock = 1 + +## Modifies the stamina regeneration from Enrage +# Setting type: Single +# Default value: 1 +vl_svr_shamanEnrage = 1 + +## Modifies the elemental protection applied by Shell +# Setting type: Single +# Default value: 1 +vl_svr_shamanShell = 1 + +## Modifies the amount of stamina gained from Spirit Guide +# Setting type: Single +# Default value: 1 +vl_svr_shamanBonusSpiritGuide = 1 + +## Modifies the stamina cost to Water Glide +# Setting type: Single +# Default value: 1 +vl_svr_shamanBonusWaterGlideCost = 1 + +## Modifies the damage of Leap +# Setting type: Single +# Default value: 1 +vl_svr_valkyrieLeap = 1 + +## Modifies the cooldown of Stagger +# Setting type: Single +# Default value: 1 +vl_svr_valkyrieStaggerCooldown = 1 + +## Modifies the damage reduction of Bulwark +# Setting type: Single +# Default value: 1 +vl_svr_valkyrieBulwark = 1 + +## Modifies the damage from Chill Wave +# Setting type: Single +# Default value: 1 +vl_svr_valkyrieBonusChillWave = 1 + +## Modifies the damage from Ice Lance +# Setting type: Single +# Default value: 1 +vl_svr_valkyrieBonusIceLance = 1 + +[Display] + +## Displays Icons on Hud for each ability +# Setting type: Boolean +# Default value: true +showAbilityIcons = true + +## Aligns icons horizontally or vertically off the guardian power icon; options are horizontal or vertical +# Setting type: String +# Default value: horizontal +iconAlignment = horizontal + +## Offsets the icon bar horizontally. The icon bar is anchored to the Guardian power icon. +# Setting type: Single +# Default value: 0 +icon_X_Offset = 0 + +## Offsets the icon bar vertically. The icon bar is anchored to the Guardian power icon. +# Setting type: Single +# Default value: 0 +icon_Y_Offset = 0 + +[General] + +## Assigns a class to the player if no class is assigned. +## This will not overwrite an existing class selection. +## A value of None will not attempt to assign any class. +# Setting type: String +# Default value: None +chosenClass = None + +## Allows class changing at the altar; if disabled, the only way to change class will be via console or the mod configs. +# Setting type: Boolean +# Default value: true +vl_svr_allowAltarClassChange = true + +## True - always sets the player class to this value when the player logs in. False - uses player profile to determine class +## Does not apply if the chosen class is None. +# Setting type: Boolean +# Default value: false +vl_svr_enforceConfigClass = false + +## True - all AoE attacks require Line of Sight to the impact point. +## False - uses default game behavior for AoE attacks. +# Setting type: Boolean +# Default value: true +vl_svr_aoeRequiresLoS = true + +[Keybinds] + +## Ability 1 Hotkey +## Use mouse # to bind an ability to a mouse button +## The # represents the mouse button; mouse 0 is left click, mouse 1 right click, etc +# Setting type: String +# Default value: Z +Ability1_Hotkey = Y + +## Ability 1 Combination Key - entering a value will trigger the ability only when both the Hotkey and Hotkey_Combo buttons are pressed +## Allows input from a combination of keys when a value is entered for the combo key +## If only one key is used, leave the combo key blank +## Examples: space, Q, left shift, left ctrl, right alt, right cmd +# Setting type: String +# Default value: +Ability1_Hotkey_Combo = + +## Ability 2 Hotkey +# Setting type: String +# Default value: X +Ability2_Hotkey = X + +## Ability 2 Combination Key +# Setting type: String +# Default value: +Ability2_Hotkey_Combo = + +## Ability 3 Hotkey +# Setting type: String +# Default value: C +Ability3_Hotkey = C + +## Ability 3 Combination Key +# Setting type: String +# Default value: +Ability3_Hotkey_Combo = + +[Modifiers] + +## Ability modifiers are always enforced by the server host +## This value multiplied on overall ability use energy cost +# Setting type: Single +# Default value: 1 +vl_svr_energyCostMultiplier = 1 + +## This value multiplied on overall cooldown time of abilities +# Setting type: Single +# Default value: 1 +vl_svr_cooldownMultiplier = 1 + +## This value multiplied on overall ability power +# Setting type: Single +# Default value: 1 +vl_svr_abilityDamageMultiplier = 0.9 + +## This value modifies the amount of skill experience gained after using an ability +# Setting type: Single +# Default value: 1 +vl_svr_skillGainMultiplier = 2 + +## This value modifies unarmed damage increased by unarmed skill +## Only use unarmed damage modifiers from a single mod +# Setting type: Single +# Default value: 1 +vl_svr_unarmedDamageMultiplier = 1 + diff --git a/ValheimClient/BepInEx/config/aedenthorn.ConfigurationManager.cfg b/ValheimClient/BepInEx/config/aedenthorn.ConfigurationManager.cfg new file mode 100644 index 0000000..ec2d973 --- /dev/null +++ b/ValheimClient/BepInEx/config/aedenthorn.ConfigurationManager.cfg @@ -0,0 +1,149 @@ +## Settings file was created by plugin Valheim Configuration Manager v0.5.0 +## Plugin GUID: aedenthorn.ConfigurationManager + +[Colors] + +## Window background color +# Setting type: Color +# Default value: 000000FF +WindowBackgroundColor = 000000FF + +## Entry background color +# Setting type: Color +# Default value: 8E8080DE +EntryBackgroundColor = 8E8080DE + +## Font color +# Setting type: Color +# Default value: FFB65CFF +FontColor = FFB65CFF + +## Widget color +# Setting type: Color +# Default value: E17600BF +WidgetColor = E17600BF + +[Filtering] + +# Setting type: Boolean +# Default value: true +Show advanced = true + +# Setting type: Boolean +# Default value: true +Show keybinds = true + +# Setting type: Boolean +# Default value: true +Show settings = true + +[General] + +## The shortcut used to toggle the config manager window on and off. +## The key can be overridden by a game-specific plugin if necessary, in that case this setting is ignored. +# Setting type: KeyboardShortcut +# Default value: F1 +Show config manager = F1 + +## Nexus mod ID for updates +# Setting type: Int32 +# Default value: 740 +NexusID = 740 + +## Show section title for plugins with only one section +# Setting type: Boolean +# Default value: false +Hide single sections = false + +## Show the menu button on the start menu +# Setting type: Boolean +# Default value: true +Show Menu Button = true + +## If set to true plugins will be collapsed when opening the configuration manager window +# Setting type: Boolean +# Default value: true +Plugin collapsed default = true + +## Window position +# Setting type: Vector2 +# Default value: {"x":55.0,"y":35.0} +WindowPosition = {"x":666.0,"y":36.0} + +## Window size +# Setting type: Vector2 +# Default value: {"x":650.0,"y":800.0} +WindowSize = {"x":650.0,"y":800.0} + +## Font Size +# Setting type: Int32 +# Default value: 14 +FontSize = 14 + +[Text] + +## Window title text +# Setting type: String +# Default value: Configuration Manager +WindowTitle = Configuration Manager + +## Normal settings toggle text +# Setting type: String +# Default value: Normal +NormalText = Normal + +## Shortcut key settings toggle text +# Setting type: String +# Default value: Keybinds +ShortcutsText = Keybinds + +## Advanced settings toggle text +# Setting type: String +# Default value: Advanced +AdvancedText = Advanced + +## Search label text +# Setting type: String +# Default value: Search Settings: +SearchText = Search Settings: + +## Reload mod config from file text +# Setting type: String +# Default value: Reload From File +ReloadText = Reload From File + +## Reset mod config to default text +# Setting type: String +# Default value: Reset To Default +ResetText = Reset To Default + +## Reset setting text +# Setting type: String +# Default value: Reset +ResetSettingText = Reset + +## Expand button text +# Setting type: String +# Default value: Expand +ExpandText = Expand + +## Collapse button text +# Setting type: String +# Default value: Collapse +CollapseText = Collapse + +## Tip text +# Setting type: String +# Default value: Tip: Click plugin names to expand. Hover over setting names to see their descriptions. +TipText = Tip: Click plugin names to expand. Hover over setting names to see their descriptions. + +## Clear search text +# Setting type: String +# Default value: Clear +ClearText = Clear + +## Open Menu Button text +# Setting type: String +# Default value: Open Config Menu +OpenMenuText = Open Config Menu + diff --git a/ValheimClient/BepInEx/config/aedenthorn.DiscardInventoryItem.cfg b/ValheimClient/BepInEx/config/aedenthorn.DiscardInventoryItem.cfg new file mode 100644 index 0000000..50f4d19 --- /dev/null +++ b/ValheimClient/BepInEx/config/aedenthorn.DiscardInventoryItem.cfg @@ -0,0 +1,35 @@ +## Settings file was created by plugin Discard or Recycle Inventory Items v0.7.0 +## Plugin GUID: aedenthorn.DiscardInventoryItem + +[General] + +## The hotkey to discard an item +# Setting type: String +# Default value: delete +DiscardHotkey = delete + +## Enable this mod +# Setting type: Boolean +# Default value: true +Enabled = true + +## Return resources if recipe is unknown +# Setting type: Boolean +# Default value: false +ReturnUnknownResources = true + +## Return resources for Epic Loot enchantments +# Setting type: Boolean +# Default value: false +ReturnEnchantedResources = false + +## Fraction of resources to return (0.0 - 1.0) +# Setting type: Single +# Default value: 1 +ReturnResources = 1 + +## Nexus mod ID for updates +# Setting type: Int32 +# Default value: 45 +NexusID = 45 + diff --git a/ValheimClient/BepInEx/config/ch.easy.develope.vh.diving.mod.cfg b/ValheimClient/BepInEx/config/ch.easy.develope.vh.diving.mod.cfg new file mode 100644 index 0000000..54ff7b4 --- /dev/null +++ b/ValheimClient/BepInEx/config/ch.easy.develope.vh.diving.mod.cfg @@ -0,0 +1,117 @@ +## Settings file was created by plugin Valheim Diving Mod v1.2.2 +## Plugin GUID: ch.easy.develope.vh.diving.mod + +[Control] + +## Trigger button to start diving. +# Setting type: KeyCode +# Default value: W +# Acceptable values: None, Backspace, Tab, Clear, Return, Pause, Escape, Space, Exclaim, DoubleQuote, Hash, Dollar, Percent, Ampersand, Quote, LeftParen, RightParen, Asterisk, Plus, Comma, Minus, Period, Slash, Alpha0, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon, Semicolon, Less, Equals, Greater, Question, At, LeftBracket, Backslash, RightBracket, Caret, Underscore, BackQuote, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket, Pipe, RightCurlyBracket, Tilde, Delete, Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod, KeypadDivide, KeypadMultiply, KeypadMinus, KeypadPlus, KeypadEnter, KeypadEquals, UpArrow, DownArrow, RightArrow, LeftArrow, Insert, Home, End, PageUp, PageDown, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock, CapsLock, ScrollLock, RightShift, LeftShift, RightControl, LeftControl, RightAlt, LeftAlt, RightCommand, RightApple, LeftCommand, LeftApple, LeftWindows, RightWindows, AltGr, Help, Print, SysReq, Break, Menu, Mouse0, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19, Joystick1Button0, Joystick1Button1, Joystick1Button2, Joystick1Button3, Joystick1Button4, Joystick1Button5, Joystick1Button6, Joystick1Button7, Joystick1Button8, Joystick1Button9, Joystick1Button10, Joystick1Button11, Joystick1Button12, Joystick1Button13, Joystick1Button14, Joystick1Button15, Joystick1Button16, Joystick1Button17, Joystick1Button18, Joystick1Button19, Joystick2Button0, Joystick2Button1, Joystick2Button2, Joystick2Button3, Joystick2Button4, Joystick2Button5, Joystick2Button6, Joystick2Button7, Joystick2Button8, Joystick2Button9, Joystick2Button10, Joystick2Button11, Joystick2Button12, Joystick2Button13, Joystick2Button14, Joystick2Button15, Joystick2Button16, Joystick2Button17, Joystick2Button18, Joystick2Button19, Joystick3Button0, Joystick3Button1, Joystick3Button2, Joystick3Button3, Joystick3Button4, Joystick3Button5, Joystick3Button6, Joystick3Button7, Joystick3Button8, Joystick3Button9, Joystick3Button10, Joystick3Button11, Joystick3Button12, Joystick3Button13, Joystick3Button14, Joystick3Button15, Joystick3Button16, Joystick3Button17, Joystick3Button18, Joystick3Button19, Joystick4Button0, Joystick4Button1, Joystick4Button2, Joystick4Button3, Joystick4Button4, Joystick4Button5, Joystick4Button6, Joystick4Button7, Joystick4Button8, Joystick4Button9, Joystick4Button10, Joystick4Button11, Joystick4Button12, Joystick4Button13, Joystick4Button14, Joystick4Button15, Joystick4Button16, Joystick4Button17, Joystick4Button18, Joystick4Button19, Joystick5Button0, Joystick5Button1, Joystick5Button2, Joystick5Button3, Joystick5Button4, Joystick5Button5, Joystick5Button6, Joystick5Button7, Joystick5Button8, Joystick5Button9, Joystick5Button10, Joystick5Button11, Joystick5Button12, Joystick5Button13, Joystick5Button14, Joystick5Button15, Joystick5Button16, Joystick5Button17, Joystick5Button18, Joystick5Button19, Joystick6Button0, Joystick6Button1, Joystick6Button2, Joystick6Button3, Joystick6Button4, Joystick6Button5, Joystick6Button6, Joystick6Button7, Joystick6Button8, Joystick6Button9, Joystick6Button10, Joystick6Button11, Joystick6Button12, Joystick6Button13, Joystick6Button14, Joystick6Button15, Joystick6Button16, Joystick6Button17, Joystick6Button18, Joystick6Button19, Joystick7Button0, Joystick7Button1, Joystick7Button2, Joystick7Button3, Joystick7Button4, Joystick7Button5, Joystick7Button6, Joystick7Button7, Joystick7Button8, Joystick7Button9, Joystick7Button10, Joystick7Button11, Joystick7Button12, Joystick7Button13, Joystick7Button14, Joystick7Button15, Joystick7Button16, Joystick7Button17, Joystick7Button18, Joystick7Button19, Joystick8Button0, Joystick8Button1, Joystick8Button2, Joystick8Button3, Joystick8Button4, Joystick8Button5, Joystick8Button6, Joystick8Button7, Joystick8Button8, Joystick8Button9, Joystick8Button10, Joystick8Button11, Joystick8Button12, Joystick8Button13, Joystick8Button14, Joystick8Button15, Joystick8Button16, Joystick8Button17, Joystick8Button18, Joystick8Button19 +divetrigger = W + +## Trigger button to take rest in water +# Setting type: KeyCode +# Default value: X +# Acceptable values: None, Backspace, Tab, Clear, Return, Pause, Escape, Space, Exclaim, DoubleQuote, Hash, Dollar, Percent, Ampersand, Quote, LeftParen, RightParen, Asterisk, Plus, Comma, Minus, Period, Slash, Alpha0, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon, Semicolon, Less, Equals, Greater, Question, At, LeftBracket, Backslash, RightBracket, Caret, Underscore, BackQuote, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket, Pipe, RightCurlyBracket, Tilde, Delete, Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod, KeypadDivide, KeypadMultiply, KeypadMinus, KeypadPlus, KeypadEnter, KeypadEquals, UpArrow, DownArrow, RightArrow, LeftArrow, Insert, Home, End, PageUp, PageDown, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock, CapsLock, ScrollLock, RightShift, LeftShift, RightControl, LeftControl, RightAlt, LeftAlt, RightCommand, RightApple, LeftCommand, LeftApple, LeftWindows, RightWindows, AltGr, Help, Print, SysReq, Break, Menu, Mouse0, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19, Joystick1Button0, Joystick1Button1, Joystick1Button2, Joystick1Button3, Joystick1Button4, Joystick1Button5, Joystick1Button6, Joystick1Button7, Joystick1Button8, Joystick1Button9, Joystick1Button10, Joystick1Button11, Joystick1Button12, Joystick1Button13, Joystick1Button14, Joystick1Button15, Joystick1Button16, Joystick1Button17, Joystick1Button18, Joystick1Button19, Joystick2Button0, Joystick2Button1, Joystick2Button2, Joystick2Button3, Joystick2Button4, Joystick2Button5, Joystick2Button6, Joystick2Button7, Joystick2Button8, Joystick2Button9, Joystick2Button10, Joystick2Button11, Joystick2Button12, Joystick2Button13, Joystick2Button14, Joystick2Button15, Joystick2Button16, Joystick2Button17, Joystick2Button18, Joystick2Button19, Joystick3Button0, Joystick3Button1, Joystick3Button2, Joystick3Button3, Joystick3Button4, Joystick3Button5, Joystick3Button6, Joystick3Button7, Joystick3Button8, Joystick3Button9, Joystick3Button10, Joystick3Button11, Joystick3Button12, Joystick3Button13, Joystick3Button14, Joystick3Button15, Joystick3Button16, Joystick3Button17, Joystick3Button18, Joystick3Button19, Joystick4Button0, Joystick4Button1, Joystick4Button2, Joystick4Button3, Joystick4Button4, Joystick4Button5, Joystick4Button6, Joystick4Button7, Joystick4Button8, Joystick4Button9, Joystick4Button10, Joystick4Button11, Joystick4Button12, Joystick4Button13, Joystick4Button14, Joystick4Button15, Joystick4Button16, Joystick4Button17, Joystick4Button18, Joystick4Button19, Joystick5Button0, Joystick5Button1, Joystick5Button2, Joystick5Button3, Joystick5Button4, Joystick5Button5, Joystick5Button6, Joystick5Button7, Joystick5Button8, Joystick5Button9, Joystick5Button10, Joystick5Button11, Joystick5Button12, Joystick5Button13, Joystick5Button14, Joystick5Button15, Joystick5Button16, Joystick5Button17, Joystick5Button18, Joystick5Button19, Joystick6Button0, Joystick6Button1, Joystick6Button2, Joystick6Button3, Joystick6Button4, Joystick6Button5, Joystick6Button6, Joystick6Button7, Joystick6Button8, Joystick6Button9, Joystick6Button10, Joystick6Button11, Joystick6Button12, Joystick6Button13, Joystick6Button14, Joystick6Button15, Joystick6Button16, Joystick6Button17, Joystick6Button18, Joystick6Button19, Joystick7Button0, Joystick7Button1, Joystick7Button2, Joystick7Button3, Joystick7Button4, Joystick7Button5, Joystick7Button6, Joystick7Button7, Joystick7Button8, Joystick7Button9, Joystick7Button10, Joystick7Button11, Joystick7Button12, Joystick7Button13, Joystick7Button14, Joystick7Button15, Joystick7Button16, Joystick7Button17, Joystick7Button18, Joystick7Button19, Joystick8Button0, Joystick8Button1, Joystick8Button2, Joystick8Button3, Joystick8Button4, Joystick8Button5, Joystick8Button6, Joystick8Button7, Joystick8Button8, Joystick8Button9, Joystick8Button10, Joystick8Button11, Joystick8Button12, Joystick8Button13, Joystick8Button14, Joystick8Button15, Joystick8Button16, Joystick8Button17, Joystick8Button18, Joystick8Button19 +takeRestInWaterTrigger = Q + +[Debug] + +## Debug mode on or off +# Setting type: Boolean +# Default value: false +doDebug = false + +[General] + +## Choose ur Language eg. DE_de +# Setting type: String +# Default value: EN_en +Language = EN_en + +# Setting type: String +# Default value: Hell0, Valheim Diving M0d by easy-develope.ch! +GreetingText = Hell0, Valheim Diving M0d by easy-develope.ch! + +## Whether or not to show the greeting text +# Setting type: Boolean +# Default value: true +DisplayGreeting = false + +[GUI] + +## Overwrite breathe indicator position +# Setting type: Boolean +# Default value: false +owBIPos = false + +## Overwrite breathe indicator position X +# Setting type: Single +# Default value: 30 +owBIPosX = 30 + +## Overwrite breathe indicator position Y +# Setting type: Single +# Default value: 150 +owBIPosY = 150 + +## Breathe indicator reduction per tick +# Setting type: Single +# Default value: 4 +breatheDrain = 0.5 + +## Min stamina drain while diving +# Setting type: Single +# Default value: 0.7 +c_swimStaminaDrainMinSkill = 0.4 + +## Max stamina drain while diving +# Setting type: Single +# Default value: 0.8 +c_swimStaminaDrainMaxSkill = 0.8 + +## Overwrite stamina restore value per tick when take rest in water +# Setting type: Boolean +# Default value: false +ow_staminaRestoreValue = true + +## Stamina restore value per tick when take rest in water +# Setting type: Single +# Default value: 0.7 +ow_staminaRestorPerTick = 1 + +[Water] + +## Reduce color brightness based on swimdepth (RGB) +## +## char_swim_debth * ow_color_brightness_factor = correctionFactor. +## +## Correction: +## correctionFactor *= -1; +## red -= red * correctionFactor; +## green -= green * correctionFactor; +## blue -= blue * correctionFactor; +## +## ow_color_brightness_factor must be a negative value +# Setting type: Single +# Default value: -0.0092 +ow_color_brightness_factor = -0.009 + +## Set fog density based on swimdepth +## +## Correction: +## RenderSettings.fogDensity = RenderSettings.fogDensity + (char_swim_debth * ow_fogdensity_factor) +# Setting type: Single +# Default value: 0.00092 +ow_fogdensity_factor = 0.001 + +## Set min. fog density. +# Setting type: Single +# Default value: 0.175 +ow_Min_fogdensity = 0.175 + +## Set max. fog density. +# Setting type: Single +# Default value: 2 +ow_Max_fogdensity = 2 + diff --git a/ValheimClient/BepInEx/config/com.github.dalayeth.Networkfix.cfg b/ValheimClient/BepInEx/config/com.github.dalayeth.Networkfix.cfg new file mode 100644 index 0000000..5b8c98a --- /dev/null +++ b/ValheimClient/BepInEx/config/com.github.dalayeth.Networkfix.cfg @@ -0,0 +1,26 @@ +## Settings file was created by plugin Network Fix v1.1.1 +## Plugin GUID: com.github.dalayeth.Networkfix + +[Default] + +# Setting type: Boolean +# Default value: true +Enabled = true + +[Networking] + +## The max send queue possible. Game default: 10,240. +# Setting type: Int32 +# Default value: 30720 +MaxSendQueueSize = 30720 + +## Minimum send rate clamp. This value will control the min allowed sending rate that bandwidth estimation is allowed to reach. Game default: 153,600 +# Setting type: Int32 +# Default value: 524288 +SendRateMin = 524288 + +## Maximum send rate clamp. This value will control the max allowed sending rate that bandwidth estimation is allowed to reach. Game default: 153,600 +# Setting type: Int32 +# Default value: 524288 +SendRateMax = 524288 + diff --git a/ValheimClient/BepInEx/config/com.lvh-it.valheim.useequipmentinwater.cfg b/ValheimClient/BepInEx/config/com.lvh-it.valheim.useequipmentinwater.cfg new file mode 100644 index 0000000..1983337 --- /dev/null +++ b/ValheimClient/BepInEx/config/com.lvh-it.valheim.useequipmentinwater.cfg @@ -0,0 +1,85 @@ +## Settings file was created by plugin Use Equipment in Water v0.2.2.0 +## Plugin GUID: com.lvh-it.valheim.useequipmentinwater + +[ItemsToAllow] + +## Allow axes to be used in Water +# Setting type: Boolean +# Default value: true +allowAxes = true + +## Allow bows to be used in Water +# Setting type: Boolean +# Default value: true +allowBows = true + +## Allow atgeirs to be used in Water +# Setting type: Boolean +# Default value: true +allowAtgeirs = true + +## Allow knives to be used in Water +# Setting type: Boolean +# Default value: true +allowKnives = true + +## Allow maces to be used in Water +# Setting type: Boolean +# Default value: true +allowMaces = true + +## Allow shields to be used in Water +# Setting type: Boolean +# Default value: true +allowShields = true + +## Allow sledge to be used in Water +# Setting type: Boolean +# Default value: true +allowSledge = true + +## Allow spears to be used in Water +# Setting type: Boolean +# Default value: true +allowSpears = true + +## Allow swords to be used in Water +# Setting type: Boolean +# Default value: true +allowSwords = true + +## Allow club to be used in Water +# Setting type: Boolean +# Default value: true +allowClub = true + +## Allow torch to be used in Water +# Setting type: Boolean +# Default value: true +allowTorch = true + +## Allow pickaxes to be used in Water +# Setting type: Boolean +# Default value: true +allowPickaxes = true + +## Allow cultivator to be used in Water +# Setting type: Boolean +# Default value: true +allowCultivator = true + +## Allow fishing rod to be used in Water +# Setting type: Boolean +# Default value: true +allowFishingRod = true + +## Allow hammer to be used in Water +# Setting type: Boolean +# Default value: true +allowHammer = true + +## Allow hoe to be used in Water +# Setting type: Boolean +# Default value: true +allowHoe = true + diff --git a/ValheimClient/BepInEx/config/com.odinplus.potionsplus.cfg b/ValheimClient/BepInEx/config/com.odinplus.potionsplus.cfg new file mode 100644 index 0000000..927e545 --- /dev/null +++ b/ValheimClient/BepInEx/config/com.odinplus.potionsplus.cfg @@ -0,0 +1,483 @@ +## Settings file was created by plugin PotionsPlus v3.0.2 +## Plugin GUID: com.odinplus.potionsplus + +[Alchemy Skill] + +## Enable Alchemy skill. +# Setting type: Boolean +# Default value: true +Enable Alchemy Skill = true + +## Enable Alchemy Bonus when crafting. +# Setting type: Boolean +# Default value: true +Enable Alchemy Bonus = true + +## XP Gain multiplier when brewing while using a Philosopher Stone. +# Setting type: Single +# Default value: 5 +# Acceptable value range: From 0 to 100 +Philosopher Stone XP Gain = 5 + +[Flask of Elements] + +## Duration for the Flask of Elements +# Setting type: Int32 +# Default value: 300 +Duration = 300 + +[Flask of Fortification] + +## Duration for the Flask of Fortification +# Setting type: Int32 +# Default value: 300 +Duration = 300 + +[Flask of Magelight] + +## Duration for Flask of Magelight +# Setting type: Int32 +# Default value: 300 +Duration = 300 + +[Flask of Second Wind] + +## Duration +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## Cooldown Timer +# Setting type: Int32 +# Default value: 0 +Cooldown = 0 + +## Jump drain multiplicative factor for stamina drain +# Setting type: Single +# Default value: -0.25 +Jump Drain = -0.25 + +## Run drain multiplicative factor for stamina drain +# Setting type: Single +# Default value: -0.25 +Run Drain = -0.25 + +## Overall multiplicative factor for stamina regen during potion +# Setting type: Single +# Default value: 1.05 +Stamina regen factor = 1.05 + +[Flask of the Gods] + +## Duration for Flask of the Gods +# Setting type: Int32 +# Default value: 300 +Duration = 300 + +## The multiplier used for health regeneration during consumption +# Setting type: Single +# Default value: 1.05 +Health regen multiplier = 1.05 + +## The volume of health to heal +# Setting type: Int32 +# Default value: 250 +Heal Over Time = 250 + +## The health over time duration +# Setting type: Int32 +# Default value: 1 +Health over time duration = 1 + +## The Interval for health over time +# Setting type: Int32 +# Default value: 1 +Health over time interval = 1 + +## Ticks of health over time +# Setting type: Int32 +# Default value: 1 +Heath over time ticks = 1 + +## The timer for health over time. Its confusing dont mess with it unless you know maths +# Setting type: Int32 +# Default value: 1 +Health over time timer = 1 + +## This is more that goes with the previous few confusing ones dont touch unless you understand some maths +# Setting type: Int32 +# Default value: 1 +Heath over time tick per hp = 1 + +[General] + +## Nexus mod ID for updates +# Setting type: Int32 +# Default value: 1561 +NexusID = 1561 + +[Grand Healing Tide Potion] + +## Duration for Grand Healing Tide Potion +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## Cooldown Timer for Second Wind +# Setting type: Int32 +# Default value: 0 +Cooldown = 0 + +## The multiplier used for health regeneration during consumption +# Setting type: Single +# Default value: 1 +Health regen multiplier = 1 + +## The volume of health to heal +# Setting type: Int32 +# Default value: 95 +Heal Over Time = 95 + +## The health over time duration +# Setting type: Int32 +# Default value: 10 +Health over time duration = 10 + +## The Interval for health over time +# Setting type: Int32 +# Default value: 5 +Health over time interval = 5 + +## Ticks of health over time +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for health over time. Its confusing dont mess with it unless you know maths +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## This is more that goes with the previous few confusing ones dont touch unless you understand some maths +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Grand Spiritual Healing Potion] + +## Duration for Grand Spiritual Healing Potion +# Setting type: Int32 +# Default value: 240 +Duration = 240 + +## The cooldown timer for this potion after consumption +# Setting type: Int32 +# Default value: 0 +Cooldown = 0 + +## The Health value you over time +# Setting type: Int32 +# Default value: 100 +Heal Over Time = 100 + +## The duration of which health over time is applied +# Setting type: Int32 +# Default value: 0 +Health over time duration = 0 + +## Don't play with this one +# Setting type: Int32 +# Default value: 0 +Health over time interval = 0 + +## Dont mess with this unless setting up advanced use case +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for Health over time +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## For advanced users only +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Grand Stamina Elixir] + +## Duration for Grand Stamina Elixir +# Setting type: Int32 +# Default value: 240 +Duration = 240 + +## Cooldown timer for the stamina elixir +# Setting type: Int32 +# Default value: 100 +Cooldown = 100 + +## Stamina over time +# Setting type: Int32 +# Default value: 10 +Stamina over time = 10 + +## Drain Per Second +# Setting type: Int32 +# Default value: 10 +Stamina Drain Per Second = 10 + +## Jump stamina drain +# Setting type: Int32 +# Default value: 10 +Jump stamina drain factor = 10 + +## Run stamina drain factor for stamina elixir +# Setting type: Int32 +# Default value: 10 +Run stamina drain factor = 10 + +## Overall stamina regen factor while consumed +# Setting type: Int32 +# Default value: 10 +Stamina regen factor overall = 10 + +[Grand Stealth Elixir] + +## Duration for Grand Stealth Elixir +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## The Cooldown period +# Setting type: Int32 +# Default value: 10 +Cooldown = 10 + +## the modifier value for stealth potion +# Setting type: Int32 +# Default value: 10 +Stealth modifier = 10 + +[Lesser Healing Tide Vial] + +## Duration for Lesser Healing Tide Vial +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## The cooldown timer for this potion after consumption +# Setting type: Int32 +# Default value: 100 +Cooldown = 100 + +## The multiplier used for health regeneration during consumption +# Setting type: Single +# Default value: 1 +Health regen multiplier = 1 + +## The volume of health to heal +# Setting type: Int32 +# Default value: 95 +Heal Over Time = 95 + +## The health over time duration +# Setting type: Int32 +# Default value: 10 +Health over time duration = 10 + +## The Interval for health over time +# Setting type: Int32 +# Default value: 5 +Health over time interval = 5 + +## Ticks of health over time +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for health over time. Its confusing don't mess with it unless you know maths +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## This is more that goes with the previous few confusing ones don't touch unless you understand some maths +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Lesser Spiritual Healing Vial] + +## Duration for Lesser Spiritual Healing Vial +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## The cooldown timer for this potion after consumption +# Setting type: Int32 +# Default value: 0 +Cooldown = 0 + +## The Health value you over time +# Setting type: Int32 +# Default value: 100 +Heal Over Time = 100 + +## The duration of which health over time is applied +# Setting type: Int32 +# Default value: 0 +Health over time duration = 0 + +## Don't play with this one +# Setting type: Int32 +# Default value: 0 +Health over time interval = 0 + +## Don't mess with this unless setting up advanced use case +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for Health over time +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## For advanced users only +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Lesser Stamina Vial] + +## Duration for Lesser Stamina Vial +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +[Medium Healing Tide Flask] + +## Duration for Medium Healing Tide Flask +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## Cooldown timer for the stamina elixir +# Setting type: Int32 +# Default value: 100 +Cooldown = 100 + +## The multiplier used for health regeneration during consumption +# Setting type: Single +# Default value: 1 +Health regen multiplier = 1 + +## The volume of health to heal +# Setting type: Int32 +# Default value: 95 +Heal Over Time = 95 + +## The health over time duration +# Setting type: Int32 +# Default value: 10 +Health over time duration = 10 + +## The Interval for health over time +# Setting type: Int32 +# Default value: 5 +Health over time interval = 5 + +## Ticks of health over time +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for health over time. Its confusing dont mess with it unless you know maths +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## This is more that goes with the previous few confusing ones dont touch unless you understand some maths +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Medium Spiritual Healing Flask] + +## Duration for Medium Spiritual Healing Flask +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## The cooldown timer for this potion after consumption +# Setting type: Int32 +# Default value: 0 +Cooldown = 0 + +## The Health value you over time +# Setting type: Int32 +# Default value: 100 +Heal Over Time = 100 + +## The duration of which health over time is applied +# Setting type: Int32 +# Default value: 0 +Health over time duration = 0 + +## Don't play with this one +# Setting type: Int32 +# Default value: 0 +Health over time interval = 0 + +## Don't mess with this unless setting up advanced use case +# Setting type: Int32 +# Default value: 0 +Heath over time ticks = 0 + +## The timer for Health over time +# Setting type: Int32 +# Default value: 0 +Health over time timer = 0 + +## For advanced users only +# Setting type: Int32 +# Default value: 0 +Heath over time tick per hp = 0 + +[Medium Stamina Flask] + +## Duration for Medium Stamina Flask +# Setting type: Int32 +# Default value: 120 +Duration = 120 + +## Cooldown timer for the stamina elixir +# Setting type: Int32 +# Default value: 100 +Cooldown = 100 + +## Stamina over time +# Setting type: Int32 +# Default value: 10 +Stamina over time = 10 + +## Drain Per Second +# Setting type: Int32 +# Default value: 10 +Stamina Drain Per Second = 10 + +## Jump stamina drain +# Setting type: Int32 +# Default value: 10 +Jump stamina drain factor = 10 + +## Run stamina drain factor for stamina elixir +# Setting type: Int32 +# Default value: 10 +Run stamina drain factor = 10 + +## Overall stamina regen factor while consumed +# Setting type: Int32 +# Default value: 10 +Stamina regen factor overall = 10 + diff --git a/ValheimClient/BepInEx/config/com.plumga.Clutter.cfg b/ValheimClient/BepInEx/config/com.plumga.Clutter.cfg new file mode 100644 index 0000000..f859350 --- /dev/null +++ b/ValheimClient/BepInEx/config/com.plumga.Clutter.cfg @@ -0,0 +1,20 @@ +## Settings file was created by plugin Clutter v0.1.0 +## Plugin GUID: com.plumga.Clutter + +[Placement] + +## Placement change when holding Ctrl and/or Alt while scrolling using the Clutter Bucket +# Setting type: Single +# Default value: 0.01 +Placement change increment = 0.01 + +## Enable placement change when holding Ctrl and/or Alt while scrolling using the Clutter Bucket +# Setting type: Boolean +# Default value: true +Enable placement change with Ctrl + Alt = true + +## Hide the yellow placement marker while using the Clutter Bucket +# Setting type: Boolean +# Default value: true +Hide placement marker = true + diff --git a/ValheimClient/BepInEx/config/digitalroot.valheim.mods.atosarrows.jvl.cfg b/ValheimClient/BepInEx/config/digitalroot.valheim.mods.atosarrows.jvl.cfg new file mode 100644 index 0000000..2ee40d2 --- /dev/null +++ b/ValheimClient/BepInEx/config/digitalroot.valheim.mods.atosarrows.jvl.cfg @@ -0,0 +1,10 @@ +## Settings file was created by plugin AtosArrowsJVL v1.0.0 +## Plugin GUID: digitalroot.valheim.mods.atosarrows.jvl + +[General] + +## Nexus mod ID for updates +# Setting type: Int32 +# Default value: 1301 +NexusID = 1301 + diff --git a/ValheimClient/BepInEx/config/htd.armory.cfg b/ValheimClient/BepInEx/config/htd.armory.cfg new file mode 100644 index 0000000..bd4ff96 --- /dev/null +++ b/ValheimClient/BepInEx/config/htd.armory.cfg @@ -0,0 +1,17 @@ +## Settings file was created by plugin Hugo's Armory v5.0.1 +## Plugin GUID: htd.armory + +[1Hotkeys] + +## Customizable hotkey so you can use the third attack of the weapon. If you want to use a mouse key, include a space: mouse 3, for example. Valid inputs: https://docs.unity3d.com/ScriptReference/KeyCode.html +# Setting type: String +# Default value: mouse 3 +hotkey_ThirdAttack = mouse 3 + +[2Options] + +## Disable the fire and smoke effect from the Flametal Great Sword. +# Setting type: Boolean +# Default value: false +disable_FlametalSwordFlames = false + diff --git a/ValheimClient/BepInEx/config/htd.armory_itemdata.cfg b/ValheimClient/BepInEx/config/htd.armory_itemdata.cfg new file mode 100644 index 0000000..a353c38 --- /dev/null +++ b/ValheimClient/BepInEx/config/htd.armory_itemdata.cfg @@ -0,0 +1,719 @@ +{ + "ItemPrefab": "BronzeFistsHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 200.0, + "DurabilityPerLevel": 50.0, + "MovementModifier": 0.0, + "BlockAmount": 5.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 0.0, + "DeflectionForcePerLevel": 0.0, + "ParryBonus": 0.0, + "Knockback_Power": 40.0, + "Backstab_Bonus": 4.0, + "DamageBlunt": 35.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 6.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "IronFistsHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 200.0, + "DurabilityPerLevel": 50.0, + "MovementModifier": 0.0, + "BlockAmount": 5.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 0.0, + "DeflectionForcePerLevel": 0.0, + "ParryBonus": 0.0, + "Knockback_Power": 40.0, + "Backstab_Bonus": 4.0, + "DamageBlunt": 55.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 6.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "DeerFistsHTD", + "MaxQuality": 5, + "UseDurability": true, + "MaxDurability": 200.0, + "DurabilityPerLevel": 50.0, + "MovementModifier": 0.15000000596046449, + "BlockAmount": 5.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 0.0, + "DeflectionForcePerLevel": 0.0, + "ParryBonus": 0.0, + "Knockback_Power": 40.0, + "Backstab_Bonus": 4.0, + "DamageBlunt": 25.0, + "DamageSlash": 0.0, + "DamagePierce": 5.0, + "DamageChop": 0.0, + "DamagePickaxe": 10.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 6.75, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 2.5, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 2.5, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 12.5, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "SilverGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.10000000149011612, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 30.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 102.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 7.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "IronGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.10000000149011612, + "BlockAmount": 10.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 40.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 75.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 6.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "SilverBattleaxeHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 62.0, + "DamagePierce": 0.0, + "DamageChop": 60.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 40.0, + "DamagePoison": 0.0, + "DamageSpirit": 30.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 6.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 3.5, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 9.75, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 6.0 +} +@ +{ + "ItemPrefab": "SilverGreatMaceHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 62.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 40.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 30.0, + "DamageBluntPerLevel": 6.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 9.75, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 6.0 +} +@ +{ + "ItemPrefab": "CoreGreatMaceHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 65.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 45.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 4.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 12.75, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "CoreGreatMaceGreenHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 65.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 45.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 4.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 12.75, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "CoreGreatMaceBlueHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 65.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 45.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 4.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 12.75, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "BoneGreatMaceHTD", + "MaxQuality": 4, + "UseDurability": false, + "MaxDurability": 250.0, + "DurabilityPerLevel": 60.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 20.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 10.0, + "DeflectionForcePerLevel": 2.5, + "ParryBonus": 3.5, + "Knockback_Power": 110.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 90.0, + "DamageSlash": 0.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 65.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 7.0, + "DamageSlashPerLevel": 0.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 13.25, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "BlackMetalGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.10000000149011612, + "BlockAmount": 25.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 40.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 130.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 8.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "BlackMetalGreatSwordAltHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.10000000149011612, + "BlockAmount": 25.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 40.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 130.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 8.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "ObsidianGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 300.0, + "DurabilityPerLevel": 85.0, + "MovementModifier": -0.20000000298023225, + "BlockAmount": 65.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 1.5, + "Knockback_Power": 95.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 53.0, + "DamageSlash": 43.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 60.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 7.0, + "DamageSlashPerLevel": 6.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 8.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "ObsidianGreatSwordRedHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 300.0, + "DurabilityPerLevel": 85.0, + "MovementModifier": -0.20000000298023225, + "BlockAmount": 65.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 1.5, + "Knockback_Power": 95.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 53.0, + "DamageSlash": 43.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 60.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 7.0, + "DamageSlashPerLevel": 6.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 8.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "FlametalGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 300.0, + "DurabilityPerLevel": 85.0, + "MovementModifier": -0.20000000298023225, + "BlockAmount": 30.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 50.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 97.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 60.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 12.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 8.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "IronHeavyGreatSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 275.0, + "DurabilityPerLevel": 60.0, + "MovementModifier": -0.20000000298023225, + "BlockAmount": 28.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 70.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 2.0, + "Knockback_Power": 50.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 90.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 7.5, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "BlackMetalBattleaxeHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 250.0, + "DurabilityPerLevel": 75.0, + "MovementModifier": -0.15000000596046449, + "BlockAmount": 25.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 60.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 130.0, + "DamagePierce": 0.0, + "DamageChop": 70.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 7.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 5.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "DragonSlayerSwordHTD", + "MaxQuality": 4, + "UseDurability": true, + "MaxDurability": 300.0, + "DurabilityPerLevel": 85.0, + "MovementModifier": -0.20000000298023225, + "BlockAmount": 45.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 1.149999976158142, + "Knockback_Power": 95.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 60.0, + "DamageSlash": 96.0, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 0.0, + "DamageBluntPerLevel": 9.0, + "DamageSlashPerLevel": 9.0, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 0.0 +} +@ +{ + "ItemPrefab": "BoneGreatSwordHTD", + "MaxQuality": 7, + "UseDurability": false, + "MaxDurability": 225.0, + "DurabilityPerLevel": 65.0, + "MovementModifier": -0.10000000149011612, + "BlockAmount": 15.0, + "BlockAmountPerLevel": 0.0, + "DeflectionForce": 5.0, + "DeflectionForcePerLevel": 5.0, + "ParryBonus": 3.5, + "Knockback_Power": 40.0, + "Backstab_Bonus": 3.0, + "DamageBlunt": 0.0, + "DamageSlash": 112.5, + "DamagePierce": 0.0, + "DamageChop": 0.0, + "DamagePickaxe": 0.0, + "DamageFire": 0.0, + "DamageFrost": 0.0, + "DamageLightning": 0.0, + "DamagePoison": 0.0, + "DamageSpirit": 41.0, + "DamageBluntPerLevel": 0.0, + "DamageSlashPerLevel": 8.75, + "DamagePiercePerLevel": 0.0, + "DamageChopPerLevel": 0.0, + "DamagePickaxePerLevel": 0.0, + "DamageFirePerLevel": 0.0, + "DamageFrostPerLevel": 0.0, + "DamageLightningPerLevel": 0.0, + "DamagePoisonPerLevel": 0.0, + "DamageSpiritPerLevel": 7.0 +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/config/htd.armory_recipeData.cfg b/ValheimClient/BepInEx/config/htd.armory_recipeData.cfg new file mode 100644 index 0000000..faaf0c6 --- /dev/null +++ b/ValheimClient/BepInEx/config/htd.armory_recipeData.cfg @@ -0,0 +1,547 @@ +{ + "ItemPrefab": "BronzeFistsHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"Bronze", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":5, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "IronFistsHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"Iron", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":5, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "DeerFistsHTD", + "Enabled": true, + "CraftingStation": "piece_workbench", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"HardAntler", + "CraftingCost":2, + "UpgradePerLevelCost":6 + } + # + { + "ItemPrefab":"TrophyDeer", + "CraftingCost":1, + "UpgradePerLevelCost":2 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":8, + "UpgradePerLevelCost":8 + } +} +@ +{ + "ItemPrefab": "SilverGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"FineWood", + "CraftingCost":8, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Silver", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } +} +@ +{ + "ItemPrefab": "IronGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"FineWood", + "CraftingCost":8, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":40, + "UpgradePerLevelCost":20 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "SilverBattleaxeHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"ElderBark", + "CraftingCost":20, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Silver", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } +} +@ +{ + "ItemPrefab": "SilverGreatMaceHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"ElderBark", + "CraftingCost":20, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Silver", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"YmirRemains", + "CraftingCost":10, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"FreezeGland", + "CraftingCost":10, + "UpgradePerLevelCost":0 + } +} +@ +{ + "ItemPrefab": "CoreGreatMaceHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophySurtling", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"SurtlingCore", + "CraftingCost":40, + "UpgradePerLevelCost":15 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":35, + "UpgradePerLevelCost":10 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":12, + "UpgradePerLevelCost":8 + } +} +@ +{ + "ItemPrefab": "CoreGreatMaceGreenHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophySurtling", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"SurtlingCore", + "CraftingCost":40, + "UpgradePerLevelCost":15 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":35, + "UpgradePerLevelCost":10 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":12, + "UpgradePerLevelCost":8 + } +} +@ +{ + "ItemPrefab": "CoreGreatMaceBlueHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophySurtling", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"SurtlingCore", + "CraftingCost":40, + "UpgradePerLevelCost":15 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":35, + "UpgradePerLevelCost":10 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":12, + "UpgradePerLevelCost":8 + } +} +@ +{ + "ItemPrefab": "BoneGreatMaceHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophyBonemass", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"WitheredBone", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } + # + { + "ItemPrefab":"BoneFragments", + "CraftingCost":50, + "UpgradePerLevelCost":25 + } + # + { + "ItemPrefab":"TrollHide", + "CraftingCost":30, + "UpgradePerLevelCost":20 + } +} +@ +{ + "ItemPrefab": "BlackMetalGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"BlackMetal", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"LinenThread", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "BlackMetalGreatSwordAltHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"BlackMetal", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"LinenThread", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "ObsidianGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"DragonTear", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Obsidian", + "CraftingCost":25, + "UpgradePerLevelCost":35 + } + # + { + "ItemPrefab":"FreezeGland", + "CraftingCost":30, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"Crystal", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } +} +@ +{ + "ItemPrefab": "ObsidianGreatSwordRedHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"DragonTear", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Obsidian", + "CraftingCost":25, + "UpgradePerLevelCost":35 + } + # + { + "ItemPrefab":"FreezeGland", + "CraftingCost":30, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"Crystal", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } +} +@ +{ + "ItemPrefab": "FlametalGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"Flametal", + "CraftingCost":35, + "UpgradePerLevelCost":20 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":25, + "UpgradePerLevelCost":15 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":10, + "UpgradePerLevelCost":10 + } + # + { + "ItemPrefab":"SurtlingCore", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } +} +@ +{ + "ItemPrefab": "IronHeavyGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophyDraugr", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":60, + "UpgradePerLevelCost":25 + } + # + { + "ItemPrefab":"ElderBark", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } + # + { + "ItemPrefab":"LeatherScraps", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } +} +@ +{ + "ItemPrefab": "BlackMetalBattleaxeHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"BlackMetal", + "CraftingCost":60, + "UpgradePerLevelCost":30 + } + # + { + "ItemPrefab":"LinenThread", + "CraftingCost":9, + "UpgradePerLevelCost":3 + } +} +@ +{ + "ItemPrefab": "DragonSlayerSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophyDragonQueen", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"TrophyDraugrElite", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"Iron", + "CraftingCost":90, + "UpgradePerLevelCost":45 + } + # + { + "ItemPrefab":"LinenThread", + "CraftingCost":20, + "UpgradePerLevelCost":10 + } +} +@ +{ + "ItemPrefab": "BoneGreatSwordHTD", + "Enabled": true, + "CraftingStation": "forge", + "MinimumStationLevel": 1, + "CraftingRequirements": + { + "ItemPrefab":"TrophyBonemass", + "CraftingCost":1, + "UpgradePerLevelCost":0 + } + # + { + "ItemPrefab":"TrophyBlob", + "CraftingCost":3, + "UpgradePerLevelCost":1 + } + # + { + "ItemPrefab":"BoneFragments", + "CraftingCost":35, + "UpgradePerLevelCost":20 + } + # + { + "ItemPrefab":"WitheredBone", + "CraftingCost":10, + "UpgradePerLevelCost":5 + } +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/config/nex.SpeedyPaths.cfg b/ValheimClient/BepInEx/config/nex.SpeedyPaths.cfg new file mode 100644 index 0000000..9ffacc8 --- /dev/null +++ b/ValheimClient/BepInEx/config/nex.SpeedyPaths.cfg @@ -0,0 +1,317 @@ +## Settings file was created by plugin Speedy Paths Mod v1.0.5 +## Plugin GUID: nex.SpeedyPaths + +[Hud] + +## Show surface type text as status effect name +# Setting type: Boolean +# Default value: true +EnableDynamicStatusText = true + +## Show the status effect buff/debuff % +# Setting type: Boolean +# Default value: true +ShowStatusEffectPercent = true + +## Show the speedypaths status icon in the hud +# Setting type: Boolean +# Default value: true +ShowStatusIcon = true + +## Text shown above the status icon +# Setting type: String +# Default value: Speedy Path +StatusText = Speedy Path + +## Speed buff threshold to show lvl 1 buff icon +# Setting type: Single +# Default value: 1 +BuffIcon +1 = 1 + +## Speed buff threshold to show lvl 2 buff icon +# Setting type: Single +# Default value: 1.39 +BuffIcon +2 = 1.39 + +## Speed buff threshold to show lvl 1 debuff icon +# Setting type: Single +# Default value: 1 +DebuffIcon -1 = 1 + +## Speed buff threshold to show lvl 2 debuff icon +# Setting type: Single +# Default value: 0.79 +DebuffIcon -2 = 0.79 + +[ServerAuthoritativeConfig] + +## Forces Clients to use Server defined configs. +# Setting type: Boolean +# Default value: true +ServerIsAuthoritative = true + +[SpeedModifiers] + +## Modifier for speed while on dirt paths +# Setting type: Single +# Default value: 1.15 +DirtPathSpeed = 1.15 + +## Modifier for speed while on stone paths +# Setting type: Single +# Default value: 1.4 +StonePathSpeed = 1.4 + +## Modifier for speed while on Cultivated land +# Setting type: Single +# Default value: 1 +CultivatedSpeed = 1 + +## Modifier for speed while on wood structures +# Setting type: Single +# Default value: 1.15 +StructureWoodSpeed = 1.15 + +## Modifier for speed while on core wood structures +# Setting type: Single +# Default value: 1.15 +StructureHardWoodSpeed = 1.15 + +## Modifier for speed while on stone structures +# Setting type: Single +# Default value: 1.4 +StructureStoneSpeed = 1.4 + +## Modifier for speed while on ironwood structures +# Setting type: Single +# Default value: 1.4 +StructureIronSpeed = 1.4 + +[SpeedModifiers_Biomes] + +## Speed modifier for uncleared ground in None Biomes +# Setting type: Single +# Default value: 1 +Untamed_None_Speed = 1 + +## Speed modifier for uncleared ground in Meadows Biomes +# Setting type: Single +# Default value: 1 +Untamed_Meadows_Speed = 1 + +## Speed modifier for uncleared ground in Swamp Biomes +# Setting type: Single +# Default value: 1 +Untamed_Swamp_Speed = 1 + +## Speed modifier for uncleared ground in Mountain Biomes +# Setting type: Single +# Default value: 1 +Untamed_Mountain_Speed = 1 + +## Speed modifier for uncleared ground in BlackForest Biomes +# Setting type: Single +# Default value: 1 +Untamed_BlackForest_Speed = 1 + +## Speed modifier for uncleared ground in Plains Biomes +# Setting type: Single +# Default value: 1 +Untamed_Plains_Speed = 1 + +## Speed modifier for uncleared ground in AshLands Biomes +# Setting type: Single +# Default value: 1 +Untamed_AshLands_Speed = 1 + +## Speed modifier for uncleared ground in DeepNorth Biomes +# Setting type: Single +# Default value: 1 +Untamed_DeepNorth_Speed = 1 + +## Speed modifier for uncleared ground in Ocean Biomes +# Setting type: Single +# Default value: 1 +Untamed_Ocean_Speed = 1 + +## Speed modifier for uncleared ground in Mistlands Biomes +# Setting type: Single +# Default value: 1 +Untamed_Mistlands_Speed = 1 + +[StaminaModifiers] + +## Modifier for stamina while on dirt paths +# Setting type: Single +# Default value: 0.8 +DirtPathStamina = 0.8 + +## Modifier for stamina while on stone paths +# Setting type: Single +# Default value: 0.7 +StonePathStamina = 0.7 + +## Modifier for stamina while on Cultivated land +# Setting type: Single +# Default value: 1 +CultivatedStamina = 1 + +## Modifier for stamina while on wood structures +# Setting type: Single +# Default value: 0.8 +StructureWoodStamina = 0.8 + +## Modifier for stamina while on core wood structures +# Setting type: Single +# Default value: 0.8 +StructureHardWoodStamina = 0.8 + +## Modifier for stamina while on stone structures +# Setting type: Single +# Default value: 0.7 +StructureStoneStamina = 0.7 + +## Modifier for stamina while on ironwood structures +# Setting type: Single +# Default value: 0.7 +StructureIronStamina = 0.7 + +[StaminaModifiers_Biomes] + +## Stamina modifier for uncleared ground in None Biomes +# Setting type: Single +# Default value: 1 +Untamed_None_Stamina = 1 + +## Stamina modifier for uncleared ground in Meadows Biomes +# Setting type: Single +# Default value: 1 +Untamed_Meadows_Stamina = 1 + +## Stamina modifier for uncleared ground in Swamp Biomes +# Setting type: Single +# Default value: 1 +Untamed_Swamp_Stamina = 1 + +## Stamina modifier for uncleared ground in Mountain Biomes +# Setting type: Single +# Default value: 1 +Untamed_Mountain_Stamina = 1 + +## Stamina modifier for uncleared ground in BlackForest Biomes +# Setting type: Single +# Default value: 1 +Untamed_BlackForest_Stamina = 1 + +## Stamina modifier for uncleared ground in Plains Biomes +# Setting type: Single +# Default value: 1 +Untamed_Plains_Stamina = 1 + +## Stamina modifier for uncleared ground in AshLands Biomes +# Setting type: Single +# Default value: 1 +Untamed_AshLands_Stamina = 1 + +## Stamina modifier for uncleared ground in DeepNorth Biomes +# Setting type: Single +# Default value: 1 +Untamed_DeepNorth_Stamina = 1 + +## Stamina modifier for uncleared ground in Ocean Biomes +# Setting type: Single +# Default value: 1 +Untamed_Ocean_Stamina = 1 + +## Stamina modifier for uncleared ground in Mistlands Biomes +# Setting type: Single +# Default value: 1 +Untamed_Mistlands_Stamina = 1 + +[Strings] + +## Dynamic status mapping for None groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_None = default + +## Dynamic status mapping for Meadows groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Meadows = default + +## Dynamic status mapping for Swamp groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Swamp = default + +## Dynamic status mapping for Mountain groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Mountain = default + +## Dynamic status mapping for BlackForest groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_BlackForest = default + +## Dynamic status mapping for Plains groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Plains = default + +## Dynamic status mapping for AshLands groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_AshLands = default + +## Dynamic status mapping for DeepNorth groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_DeepNorth = default + +## Dynamic status mapping for Ocean groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Ocean = default + +## Dynamic status mapping for Mistlands groundcover. 'default' uses localized biome name. +# Setting type: String +# Default value: default +Biome_Mistlands = default + +## Dynamic status mapping for dirt paths +# Setting type: String +# Default value: Dirt Path +PathDirt = Dirt Path + +## Dynamic status mapping for stone paths +# Setting type: String +# Default value: Stone Path +PathStone = Stone Path + +## Dynamic status mapping for Cultivated land +# Setting type: String +# Default value: Cultivated +Cultivated = Cultivated + +## Dynamic status mapping for wood structures +# Setting type: String +# Default value: Wood +StructureWood = Wood + +## Dynamic status mapping for core wood structures +# Setting type: String +# Default value: Hardwood +StructureHardWood = Hardwood + +## MDynamic status mapping for stone structures +# Setting type: String +# Default value: Stone +StructureStone = Stone + +## Dynamic status mapping for ironwood structures +# Setting type: String +# Default value: Iron +StructureIron = Iron + diff --git a/ValheimClient/BepInEx/config/org.bepinex.plugins.creaturelevelcontrol.cfg b/ValheimClient/BepInEx/config/org.bepinex.plugins.creaturelevelcontrol.cfg new file mode 100644 index 0000000..654c808 --- /dev/null +++ b/ValheimClient/BepInEx/config/org.bepinex.plugins.creaturelevelcontrol.cfg @@ -0,0 +1,598 @@ +## Settings file was created by plugin Creature Level & Loot Control v4.4.5 +## Plugin GUID: org.bepinex.plugins.creaturelevelcontrol + +[1 - General] + +## The configuration is locked and may not be changed by clients. Only active for servers. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Lock Configuration = On + +## Reads the CreatureConfig.yml file if present. Configuration done via the YAML file will override the same settings done via the default configuration file. For everything not configured in the YAML file, the default configuration file will still be used. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Use creature configuration yaml = Off + +## Reads the ItemConfig.yml file if present. Configuration done via the YAML file will override the same settings done via the default configuration file. For everything not configured in the YAML file, the default configuration file will still be used. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Use item configuration yaml = Off + +## Nexus mod ID for updates. +# Setting type: Int32 +# Default value: 495 +nexusID = 495 + +## Health increase per player in multiplayer in percent. +# Setting type: Single +# Default value: 40 +# Acceptable value range: From 0 to 200 +HP increase per player in multiplayer (percentage) = 20 + +## Damage increase per player in multiplayer in percent. +# Setting type: Single +# Default value: 4 +# Acceptable value range: From 0 to 200 +DMG increase per player in multiplayer (percentage) = 4 + +## Sets the minimum player count for multiplayer games. +# Setting type: Int32 +# Default value: 1 +# Acceptable value range: From 1 to 25 +Minimum player count for multiplayer scaling = 1 + +## Sets the maximum player count for multiplayer games. +# Setting type: Int32 +# Default value: 10 +# Acceptable value range: From 1 to 25 +Maximum player count for multiplayer scaling = 10 + +## Adds the defined number of players to the actual player count for multiplayer scaling. +# Setting type: Int32 +# Default value: 0 +# Acceptable value range: From 0 to 25 +Player count to be added to the actual player count for multiplayer scaling (0 is disabled) = 0 + +## Range that other players have to be in in order to count towards the multiplayer scaling. Has no effect, if the fixed player count is set to something else than 0. +# Setting type: Single +# Default value: 200 +# Acceptable value range: From 0 to 10000 +Multiplayer scaling per player range (0 is unlimited) = 200 + +## Maximum distance for the nameplate to be shown on mouseover. +# Setting type: Single +# Default value: 50 +# Acceptable value range: From 0 to 100 +Nameplate display on mouseover range = 50 + +## Can be used to turn off visual indicators for the targets level, e.g. their stars or color. +# Setting type: VisualLevelIndicator +# Default value: On +# Acceptable values: Off, On, BossesOff, CreaturesOff +Visual indicators for level = On + +## Sets the CLLC commands that users on a server can use. Server admins can always use all commands. Has no effect, if the configuration is unlocked (for obvious reasons). +# Setting type: AllowedConsoleCommands +# Default value: InformationCommands +# Acceptable values: CreatureCommands, InformationCommands, None +Console commands allowed to be used by users on a server = None + +## Enables detailed damage logging for each hit. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Detailed damage log = Off + +[2 - Creatures] + +## Sets the level up chances of all creatures. +# Setting type: Difficulty +# Default value: Medium +# Acceptable values: Custom, Very_easy, Easy, Medium, Hard, Very_hard, Insane +Difficulty = Hard + +## Change the second factor used to calculate the level up chances. +# Setting type: DifficultySecondFactor +# Default value: BossesKilled +# Acceptable values: None, Age_of_world, Distance, BossesKilled +Second factor = Distance + +## Display circles on the map for distance from spawn option. +# Setting type: Toggle +# Default value: On +# Acceptable values: Off, On +Display circles on the map for distance from spawn option = Off + +## Creatures can spawn with special effects, making them a lot more difficult to kill. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Creatures can spawn with special effects = On + +## Changes the way the visual indicator for creatures extra effects is displayed. +# Setting type: VisualExtraEffectIndicator +# Default value: Color +# Acceptable values: Color, Text, Both +Visual indicator for special effects = Color + +## Creatures can spawn with elemental infusions, making them a lot more difficult to kill. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Creatures can spawn with elemental infusions = On + +## Creatures with elemental infusions have the elemental infusion added to their name. +# Setting type: Toggle +# Default value: On +# Acceptable values: Off, On +Add the infusion to the creatures name = Off + +## Sets the brightness for the flames visual effect of elemental infused creatures. +# Setting type: Single +# Default value: 10 +# Acceptable value range: From 0 to 100 +Brightness for the elemental infusion visual indicator (percentage) = 10 + +## Sets the minimum stars for all creatures. Does not affect custom difficulty. +# Setting type: SpawnLevel +# Default value: None +# Acceptable values: None, One, Two, Three, Four, Five +Minimum stars = None + +## Sets the maximum stars for all creatures. Does not affect custom difficulty. +# Setting type: SpawnLevel +# Default value: Five +# Acceptable values: None, One, Two, Three, Four, Five +Maximum stars = Five + +## Time until creatures in dungeons respawn in minutes (0 = disabled, 20 = one ingame day). +# Setting type: Int32 +# Default value: 20 +Time until creatures in dungeons respawn in minutes (0 means disabled, 20 is one ingame day) = 200 + +## Time until creatures in camps respawn in minutes (0 = disabled, 20 = one ingame day). +# Setting type: Int32 +# Default value: 20 +Time until creatures in camps respawn in minutes (0 means disabled, 20 is one ingame day) = 200 + +## Increases the size of creatures per star. +# Setting type: Int32 +# Default value: 10 +# Acceptable value range: From 0 to 40 +Creature size increase per star (percentage) = 15 + +## If creature size will be increased in dungeons as well, where they might get stuck if they get too big. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Increase creature size even in dungeons (where they might get stuck) = Off + +## Base health for creatures in percentage. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 1 to 500 +Base health for creatures (percentage) = 200 + +## Health gained per star for creatures in percentage. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 1 to 500 +Health gained per star for creatures (percentage) = 100 + +## Base damage for creatures in percentage. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 1 to 500 +Base damage for creatures (percentage) = 200 + +## Damage gained per star for creatures in percentage. +# Setting type: Single +# Default value: 50 +# Acceptable value range: From 1 to 500 +Damage gained per star for creatures (percentage) = 100 + +## Base movement speed for creatures in percentage. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 1 to 300 +Base movement speed for creatures (percentage) = 100 + +## Base attack speed for creatures in percentage. +# Setting type: Single +# Default value: 100 +# Acceptable value range: From 1 to 500 +Base attack speed for creatures (percentage) = 100 + +## Minimum world level for creature sectors to become active. +# Setting type: CreatureSectorWorldLevel +# Default value: Disabled +# Acceptable values: None, One, Two, Three, Four, Five, Disabled +World level required to enable creature sectors = Disabled + +## Time that needs to pass before a creature sectors bonus level is reset in minutes (0 = disabled, 20 = one ingame day). +# Setting type: Int32 +# Default value: 60 +Time until each creature sector is reset (0 is no reset) = 60 + +## Creature kills required in the same sector for creatures to gain bonus level. +# Setting type: String +# Default value: 20, 50, 100 +Kills required in a sector for each bonus level = 10, 25, 50 + +## Sets the scope for the creature sector level up announcements. +# Setting type: CreatureSectorAnnouncementScope +# Default value: Local +# Acceptable values: Local, Global, Off +Sets the scope for creature sector level up announcements = Local + +## Pings the map on creature sector level ups. Time is in seconds. 0 means disabled. +# Setting type: Int32 +# Default value: 0 +Duration of the map ping for creature sector level ups in seconds (0 is disabled) = 0 + +## Displays the current creature sector level on the minimap. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Displays the current creature sector level on the minimap = Off + +[3 - Loot] + +## Sets the loot system to be used. +## Vanilla disables the loot system from this mod completely. +## Linear: Dropped items are multiplied with the creatures level. +## Calculate chance: A boar has a 50% chance to drop 2 meat, it will either drop 2 or none. +## Calculate amount: A boar has a 50% chance to drop 2 meat, it will always drop 1. +## +# Setting type: LootSystem +# Default value: CalculateChance +# Acceptable values: Vanilla, Linear, CalculateChance, CalculateAmount +Loot system to be used = CalculateChance + +## Chance for additional loot per star for creatures. +# Setting type: Int32 +# Default value: 50 +# Acceptable value range: From 0 to 100 +Chance for additional loot per star for creatures = 25 + +## Chance for additional loot per star for bosses. +# Setting type: Int32 +# Default value: 50 +# Acceptable value range: From 0 to 100 +Chance for additional loot per star for bosses = 50 + +## Multiplies the items dropped by all creatures. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0 to 5 +Multiplier for dropped creature items = 1 + +## Multiplies the items dropped by all bosses. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0 to 5 +Multiplier for dropped boss items = 1 + +## If creatures can drop multiple trophies. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Creatures can drop multiple trophies = Off + +## If bosses can drop multiple trophies. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Bosses can drop multiple trophies = On + +## Multiplies the items dropped by all passive creatures like Crows and Seagulls. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 1 to 5 +Drop multiplier for passive creatures (like Seagulls and Crows) = 2 + +## Time until items in dungeons respawn in minutes (0 = disabled, 20 = one ingame day). +# Setting type: Int32 +# Default value: 140 +Time until items in dungeons respawn in minutes (0 means disabled, 20 is one ingame day) = 280 + +[4 - Bosses] + +## Bosses can spawn with special effects, making them a lot more difficult to kill. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Bosses can spawn with special effects = On + +## On means that the level up chances for creatures are used for bosses as well. Otherwise, the custom level chances for bosses will be used. +# Setting type: Toggle +# Default value: Off +# Acceptable values: Off, On +Use creature level chances for bosses = Off + +## Level chances for bosses. Start with 1 star, from left to right, as many stars as you want. 0 star chance will be automatically calculated from the remainder. +# Setting type: String +# Default value: 0, 0, 0, 0, 0, 0, 0, 0, 0 +Star chances for bosses (percentages) = 25, 20, 15, 10, 5, 0, 0, 0, 0 + +## Increases the size of bosses per star. +# Setting type: Int32 +# Default value: 5 +# Acceptable value range: From 0 to 40 +Boss size increase per star (percentage) = 10 + +## Health gained per star for bosses in percentage. +# Setting type: Single +# Default value: 25 +# Acceptable value range: From 1 to 500 +Health gained per star for bosses (percentage) = 200 + +## Damage gained per star for bosses in percentage. +# Setting type: Single +# Default value: 10 +# Acceptable value range: From 1 to 500 +Damage gained per star for bosses (percentage) = 200 + +[5 - Age of world] + +## Days needed to pass before your world gets to world level 1. +# Setting type: Int32 +# Default value: 10 +World level 1 start (days) = 10 + +## Days needed to pass before your world gets to world level 2. +# Setting type: Int32 +# Default value: 25 +World level 2 start (days) = 25 + +## Days needed to pass before your world gets to world level 3. +# Setting type: Int32 +# Default value: 50 +World level 3 start (days) = 50 + +## Days needed to pass before your world gets to world level 4. +# Setting type: Int32 +# Default value: 100 +World level 4 start (days) = 100 + +## Days needed to pass before your world gets to world level 5. +# Setting type: Int32 +# Default value: 250 +World level 5 start (days) = 200 + +[5 - Custom level chances] + +## Chances for stars at world level 0 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 10, 2, 0, 0, 0 +Chances for stars at world level 0 (percent) = 15, 3, 0, 0, 0 + +## Chances for stars at world level 1 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 15, 5, 1, 0, 0 +Chances for stars at world level 1 (percent) = 22.5, 7.5, 1.5, 0, 0 + +## Chances for stars at world level 2 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 18, 8, 2, 0.3, 0 +Chances for stars at world level 2 (percent) = 27, 12, 3, 0.5, 0 + +## Chances for stars at world level 3 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 22, 10, 3, 0.5, 0.3 +Chances for stars at world level 3 (percent) = 33, 15, 4.5, 0.8, 0.5 + +## Chances for stars at world level 4 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 25, 12, 5, 1, 0.5 +Chances for stars at world level 4 (percent) = 37.5, 18, 7.5, 1.5, 0.8 + +## Chances for stars at world level 5 in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3 +# Setting type: String +# Default value: 30, 15, 8, 3, 1 +Chances for stars at world level 5 (percent) = 45, 22.5, 12, 4.5, 1.5 + +[5 - Distance from Spawn] + +## Distance from spawn for level 1 start. Radius for a default world is 10500. +# Setting type: Int32 +# Default value: 1500 +# Acceptable value range: From 0 to 25000 +Distance from spawn for level 1 start = 1000 + +## Distance from spawn for level 2 start. Radius for a default world is 10500. +# Setting type: Int32 +# Default value: 3000 +# Acceptable value range: From 0 to 25000 +Distance from spawn for level 2 start = 2500 + +## Distance from spawn for level 3 start. Radius for a default world is 10500. +# Setting type: Int32 +# Default value: 4500 +# Acceptable value range: From 0 to 25000 +Distance from spawn for level 3 start = 4000 + +## Distance from spawn for level 4 start. Radius for a default world is 10500. +# Setting type: Int32 +# Default value: 6000 +# Acceptable value range: From 0 to 25000 +Distance from spawn for level 4 start = 5500 + +## Distance from spawn for level 5 start. Radius for a default world is 10500. +# Setting type: Int32 +# Default value: 7500 +# Acceptable value range: From 0 to 25000 +Distance from spawn for level 5 start = 7000 + +[6 - Creature Affix chances] + +## Chance for Aggressive effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 10 +# Acceptable value range: From 0 to 100 +Chance for Aggressive effect to spawn (percentage) = 20 + +## Chance for Curious effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 20 +# Acceptable value range: From 0 to 100 +Chance for Curious effect to spawn (percentage) = 20 + +## Chance for Quick effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 10 +# Acceptable value range: From 0 to 100 +Chance for Quick effect to spawn (percentage) = 20 + +## Chance for Regenerating effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 10 +# Acceptable value range: From 0 to 100 +Chance for Regenerating effect to spawn (percentage) = 20 + +## Chance for Splitting effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 5 +# Acceptable value range: From 0 to 100 +Chance for Splitting effect to spawn (percentage) = 10 + +## Chance for Armored effect creatures to spawn (percentage). +# Setting type: Single +# Default value: 3 +# Acceptable value range: From 0 to 100 +Chance for Armored effect to spawn (percentage) = 6 + +[6 - Creature Infusion chances] + +## Chance for Fire infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 7 +# Acceptable value range: From 0 to 100 +Chance for Fire infusion to spawn (percentage) = 14 + +## Chance for Frost infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 7 +# Acceptable value range: From 0 to 100 +Chance for Frost infusion to spawn (percentage) = 14 + +## Chance for Poison infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 4 +# Acceptable value range: From 0 to 100 +Chance for Poison infusion to spawn (percentage) = 8 + +## Chance for Lightning infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 3 +# Acceptable value range: From 0 to 100 +Chance for Lightning infusion to spawn (percentage) = 6 + +## Chance for Spirit infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 1.75 +# Acceptable value range: From 0 to 100 +Chance for Spirit infusion to spawn (percentage) = 3.5 + +## Chance for Chaos infusion creatures to spawn (percentage). +# Setting type: Single +# Default value: 1.25 +# Acceptable value range: From 0 to 100 +Chance for Chaos infusion to spawn (percentage) = 2.5 + +## Multiplier applied to base chances for infusions to spawn according to the number of stars of the creature. Chances for every amount of stars, from left to right, comma separated. Start with 0 stars. Defaults to 1. +# Setting type: String +# Default value: 0, 0.3, 0.6, 1, 1.3, 1.6 +Multiplier for infusion chances per star = 0, 0.6, 1.2, 2, 2.6, 3.2 + +[7 - Boss Affix chances] + +## Chance for Reflective affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Reflective affix to spawn (percentage) = 14.28571 + +## Chance for Shielded affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Shielded affix to spawn (percentage) = 14.28571 + +## Chance for Mending affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Mending affix to spawn (percentage) = 14.28571 + +## Chance for Summoner affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Summoner affix to spawn (percentage) = 14.28571 + +## Chance for Elementalist affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Elementalist affix to spawn (percentage) = 14.28571 + +## Chance for Enraged affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Enraged affix to spawn (percentage) = 14.28571 + +## Chance for Twin affix bosses to spawn (percentage). +# Setting type: Single +# Default value: 14.28571 +# Acceptable value range: From 0 to 100 +Chance for Twin affix to spawn (percentage) = 14.28571 + +[8 - Boss Affix power] + +## Base damage per hit for the Reflective boss affix. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0.01 to 10 +Reflective base damage = 1 + +## Damage reduction for arrows in percent for the Shielded boss affix. +# Setting type: Single +# Default value: 50 +# Acceptable value range: From 1 to 100 +Shielded damage reduction (percentage) = 50 + +## Multiplier for the Mending boss affix. +# Setting type: Single +# Default value: 1 +# Acceptable value range: From 0.01 to 10 +Mending healing factor = 1 + +## The number of summoning events over the course of the fight for the Summoner boss affix. +# Setting type: Int32 +# Default value: 3 +# Acceptable value range: From 1 to 10 +Number of summons for Summoners = 3 + +## Elemental damage increase for Elementalist boss affix. +# Setting type: Single +# Default value: 20 +# Acceptable value range: From 1 to 200 +Elementalist damage increase (percentage) = 20 + +## Phyiscal damage increase for Enraged boss affix. +# Setting type: Single +# Default value: 20 +# Acceptable value range: From 1 to 200 +Enraged damage increase (percentage) = 20 + +## Health and damage for Twin boss affix. +# Setting type: Single +# Default value: 75 +# Acceptable value range: From 25 to 200 +Twin damage and health (percentage) = 75 + diff --git a/ValheimClient/BepInEx/config/org.bepinex.valheim.displayinfo.cfg b/ValheimClient/BepInEx/config/org.bepinex.valheim.displayinfo.cfg new file mode 100644 index 0000000..a76c8ce --- /dev/null +++ b/ValheimClient/BepInEx/config/org.bepinex.valheim.displayinfo.cfg @@ -0,0 +1,17 @@ +## Settings file was created by plugin Display BepInEx Info In-Game v2.0.0 +## Plugin GUID: org.bepinex.valheim.displayinfo + +[Console] + +## Log levels to log to Valheim console. +# Setting type: LogLevel +# Default value: Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Error, Warning, Message, Info + +## If true, will display BepInEx logs in Valheim console. +# Setting type: Boolean +# Default value: true +DisplayBepInExLogs = true + diff --git a/ValheimClient/BepInEx/config/randyknapp.mods.epicloot.cfg b/ValheimClient/BepInEx/config/randyknapp.mods.epicloot.cfg new file mode 100644 index 0000000..2948046 --- /dev/null +++ b/ValheimClient/BepInEx/config/randyknapp.mods.epicloot.cfg @@ -0,0 +1,190 @@ +## Settings file was created by plugin Epic Loot v0.8.7 +## Plugin GUID: randyknapp.mods.epicloot + +[Abilities] + +## Hotkey for Ability Slot 1. +# Setting type: String +# Default value: g +Ability Hotkey 1 = g + +## Hotkey for Ability Slot 2. +# Setting type: String +# Default value: h +Ability Hotkey 2 = h + +## Hotkey for Ability Slot 3. +# Setting type: String +# Default value: j +Ability Hotkey 3 = j + +## The point on the HUD to anchor the ability bar. Changing this also changes the pivot of the ability bar to that corner. For reference: the ability bar size is 208 by 64. +# Setting type: TextAnchor +# Default value: LowerLeft +# Acceptable values: UpperLeft, UpperCenter, UpperRight, MiddleLeft, MiddleCenter, MiddleRight, LowerLeft, LowerCenter, LowerRight +Ability Bar Anchor = LowerRight + +## The position offset from the Ability Bar Anchor at which to place the ability bar. +# Setting type: Vector2 +# Default value: {"x":150.0,"y":170.0} +Ability Bar Position = {"x":150.0,"y":170.0} + +## The Ability Bar is a Horizontal Layout Group. This value indicates how the elements inside are aligned. Choices with 'Center' in them will keep the items centered on the bar, even if there are fewer than the maximum allowed. 'Left' will be left aligned, and similar for 'Right'. +# Setting type: TextAnchor +# Default value: LowerLeft +# Acceptable values: UpperLeft, UpperCenter, UpperRight, MiddleLeft, MiddleCenter, MiddleRight, LowerLeft, LowerCenter, LowerRight +Ability Bar Layout Alignment = LowerLeft + +## The number of units between the icons on the ability bar. +# Setting type: Single +# Default value: 8 +Ability Bar Icon Spacing = 8 + +[Balance] + +## Sets how the drop system limits what item types can drop. Unlimited: no limits, exactly what's in the loot table will drop. MustKnowRecipe: items will drop so long as the player has discovered their recipe. MustHaveCrafted: items will only drop once the player has crafted one or picked one up. If an item type cannot drop, it will downgrade to an item of the same type and skill that the player has unlocked (i.e. swords will stay swords) +# Setting type: GatedItemTypeMode +# Default value: MustKnowRecipe +# Acceptable values: Unlimited, MustKnowRecipe, MustHaveCrafted +Item Drop Limits = MustKnowRecipe + +## Sets bosses to drop a number of trophies equal to the number of players, similar to the way Wishbone works in vanilla. Optionally set it to only include players within a certain distance, use 'Boss Trophy Drop Player Range' to set the range. +# Setting type: BossDropMode +# Default value: OnePerPlayerNearBoss +# Acceptable values: Default, OnePerPlayerOnServer, OnePerPlayerNearBoss +Boss Trophy Drop Mode = OnePerPlayerNearBoss + +## Sets the range that bosses check when dropping multiple trophies using the OnePerPlayerNearBoss drop mode. +# Setting type: Single +# Default value: 100 +Boss Trophy Drop Player Range = 300 + +## Set to true to enable all the adventure mode features: secret stash, gambling, treasure maps, and bounties. Set to false to disable. This will not actually remove active treasure maps or bounties from your save. +# Setting type: Boolean +# Default value: true +Adventure Mode Enabled = true + +## Sets the range that Andvaranaut will locate a treasure chest. +# Setting type: Int32 +# Default value: 20 +Andvaranaut Range = 20 + +## The percent chance that a legendary item will be a set item. Min = 0, Max = 1 +# Setting type: Single +# Default value: 0.15 +Set Item Drop Chance = 0.15 + +[Config Sync] + +## [Server Only] The configuration is locked and may not be changed by clients once it has been synced from the server. Only valid for server config, will have no effect on clients. +# Setting type: Boolean +# Default value: false +Lock Config = true + +[Crafting UI] + +## Changes the item description in the crafting panel to scroll instead of scale when it gets too long for the space. +# Setting type: Boolean +# Default value: true +Use Scrolling Craft Description = true + +## Sets the layout style for crafting tabs, if you've got too many. Horizontal is the vanilla method, but might overlap other mods or run off the screen. HorizontalSquish makes the buttons narrower, works okay with 6 or 7 buttons. Vertical puts the tabs in a column to the left the crafting window. Angled tries to make more room at the top of the crafting panel by angling the tabs, works okay with 6 or 7 tabs. +# Setting type: CraftingTabStyle +# Default value: HorizontalSquish +# Acceptable values: Horizontal, HorizontalSquish, Vertical, Angled +Crafting Tab Style = HorizontalSquish + +## If set to false, hides the items that are equipped or on your hotbar in the Sacrifice items list. +# Setting type: Boolean +# Default value: false +ShowEquippedAndHotbarItemsInSacrificeTab = false + +[General] + +## If true, magic items uses special, randomly generated names based on their rarity, type, and magic effects. +# Setting type: Boolean +# Default value: true +Use Generated Magic Item Names = true + +[Item Colors] + +## The color of Magic rarity items, the lowest magic item tier. (Optional, use an HTML hex color starting with # to have a custom color.) Available options: Red, Orange, Yellow, Green, Teal, Blue, Indigo, Purple, Pink, Gray +# Setting type: String +# Default value: Blue +Magic Rarity Color = #00b300 + +## Indicates the color of the icon used for magic crafting materials. A number between 0 and 9. Available options: 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Teal, 5=Blue, 6=Indigo, 7=Purple, 8=Pink, 9=Gray +# Setting type: Int32 +# Default value: 5 +Magic Crafting Material Icon Index = 3 + +## The color of Rare rarity items, the second magic item tier. (Optional, use an HTML hex color starting with # to have a custom color.) Available options: Red, Orange, Yellow, Green, Teal, Blue, Indigo, Purple, Pink, Gray +# Setting type: String +# Default value: Yellow +Rare Rarity Color = Blue + +## Indicates the color of the icon used for rare crafting materials. A number between 0 and 9. Available options: 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Teal, 5=Blue, 6=Indigo, 7=Purple, 8=Pink, 9=Gray +# Setting type: Int32 +# Default value: 2 +Rare Crafting Material Icon Index = 5 + +## The color of Epic rarity items, the third magic item tier. (Optional, use an HTML hex color starting with # to have a custom color.) Available options: Red, Orange, Yellow, Green, Teal, Blue, Indigo, Purple, Pink, Gray +# Setting type: String +# Default value: Purple +Epic Rarity Color = Purple + +## Indicates the color of the icon used for epic crafting materials. A number between 0 and 9. Available options: 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Teal, 5=Blue, 6=Indigo, 7=Purple, 8=Pink, 9=Gray +# Setting type: Int32 +# Default value: 7 +Epic Crafting Material Icon Index = 7 + +## The color of Legendary rarity items, the highest magic item tier. (Optional, use an HTML hex color starting with # to have a custom color.) Available options: Red, Orange, Yellow, Green, Teal, Blue, Indigo, Purple, Pink, Gray +# Setting type: String +# Default value: Teal +Legendary Rarity Color = Orange + +## Indicates the color of the icon used for legendary crafting materials. A number between 0 and 9. Available options: 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Teal, 5=Blue, 6=Indigo, 7=Purple, 8=Pink, 9=Gray +# Setting type: Int32 +# Default value: 4 +Legendary Crafting Material Icon Index = 1 + +## The color of set item text and the set item icon. Use a hex color, default is cyan +# Setting type: String +# Default value: #26ffff +Set Item Color = #26ffff + +[Logging] + +## Enable logging +# Setting type: Boolean +# Default value: false +Logging Enabled = false + +## Only log messages of the selected level or higher +# Setting type: LogLevel +# Default value: Info +# Acceptable values: Info, Warning, Error +Log Level = Info + +[Rarity] + +## The name of the lowest rarity. +# Setting type: String +# Default value: $mod_epicloot_magic +Magic Rarity Display Name = $mod_epicloot_magic + +## The name of the second rarity. +# Setting type: String +# Default value: $mod_epicloot_rare +Rare Rarity Display Name = $mod_epicloot_rare + +## The name of the third rarity. +# Setting type: String +# Default value: $mod_epicloot_epic +Epic Rarity Display Name = $mod_epicloot_epic + +## The name of the highest rarity. +# Setting type: String +# Default value: $mod_epicloot_legendary +Legendary Rarity Display Name = $mod_epicloot_legendary + diff --git a/ValheimClient/BepInEx/config/randyknapp.mods.equipmentandquickslots.cfg b/ValheimClient/BepInEx/config/randyknapp.mods.equipmentandquickslots.cfg new file mode 100644 index 0000000..3d90905 --- /dev/null +++ b/ValheimClient/BepInEx/config/randyknapp.mods.equipmentandquickslots.cfg @@ -0,0 +1,72 @@ +## Settings file was created by plugin Equipment and Quick Slots v2.0.14 +## Plugin GUID: randyknapp.mods.equipmentandquickslots + +[Hotkeys] + +## Hotkey for Quick Slot 1. +# Setting type: String +# Default value: z +Quick slot hotkey 1 = v + +## Hotkey for Quick Slot 2. +# Setting type: String +# Default value: v +Quick slot hotkey 2 = b + +## Hotkey for Quick Slot 3. +# Setting type: String +# Default value: b +Quick slot hotkey 3 = n + +## Hotkey Label for Quick Slot 1. Leave blank to use the hotkey itself. +# Setting type: String +# Default value: +Quick slot hotkey label 1 = + +## Hotkey Label for Quick Slot 2. Leave blank to use the hotkey itself. +# Setting type: String +# Default value: +Quick slot hotkey label 2 = + +## Hotkey Label for Quick Slot 3. Leave blank to use the hotkey itself. +# Setting type: String +# Default value: +Quick slot hotkey label 3 = + +[Logging] + +## Enable logging +# Setting type: Boolean +# Default value: false +Logging Enabled = false + +[Quick Slots] + +## The point on the HUD to anchor the Quick Slots bar. Changing this also changes the pivot of the Quick Slots to that corner. +# Setting type: TextAnchor +# Default value: LowerLeft +# Acceptable values: UpperLeft, UpperCenter, UpperRight, MiddleLeft, MiddleCenter, MiddleRight, LowerLeft, LowerCenter, LowerRight +Quick Slots Anchor = LowerLeft + +## The position offset from the Quick Slots Anchor at which to place the Quick Slots. +# Setting type: Vector2 +# Default value: {"x":216.0,"y":150.0} +Quick Slots Position = {"x":490.0,"y":150.0} + +[Toggles] + +## Enable the equipment slots. Disabling this while items are equipped with attempt to move them to your inventory. +# Setting type: Boolean +# Default value: true +Enable Equipment Slots = true + +## Enable the quick slots. Disabling this while items are in the slots with attempt to move them to your inventory. +# Setting type: Boolean +# Default value: true +Enable Quick Slots = true + +## Enable to view the raw save data in the compendium. +# Setting type: Boolean +# Default value: false +View Debug Save Data = false + diff --git a/ValheimClient/BepInEx/config/randyknapp.mods.extendeditemdataframework.cfg b/ValheimClient/BepInEx/config/randyknapp.mods.extendeditemdataframework.cfg new file mode 100644 index 0000000..e871da8 --- /dev/null +++ b/ValheimClient/BepInEx/config/randyknapp.mods.extendeditemdataframework.cfg @@ -0,0 +1,20 @@ +## Settings file was created by plugin Extended Item Data Framework v1.0.5 +## Plugin GUID: randyknapp.mods.extendeditemdataframework + +[General] + +## Turn off to disable this mod. When uninstalling, load and quit a game once with this option set to false. +# Setting type: Boolean +# Default value: true +Enabled = true + +## Enables log output from the mod. +# Setting type: Boolean +# Default value: false +Logging Enabled = false + +## Displays the item's unique id in magenta text at the bottom of the tooltip. +# Setting type: Boolean +# Default value: false +Display UniqueItemID in Tooltip = false + diff --git a/ValheimClient/BepInEx/config/sell_that.buying.cfg b/ValheimClient/BepInEx/config/sell_that.buying.cfg new file mode 100644 index 0000000..d4eacbc --- /dev/null +++ b/ValheimClient/BepInEx/config/sell_that.buying.cfg @@ -0,0 +1,1200 @@ +[Amber] + +# Setting type: String +# Default value: +ItemName = Amber + +# Setting type: Int32 +# Default value: 0 +Price = 150 + +[AmberPearl] + +# Setting type: String +# Default value: +ItemName = AmberPearl + +# Setting type: Int32 +# Default value: 0 +Price = 200 + +[BarleyWine] + +# Setting type: String +# Default value: +ItemName = BarleyWine + +# Setting type: Int32 +# Default value: 0 +Price = 50 + +[BlackMetal] + +# Setting type: String +# Default value: +ItemName = BlackMetal + +# Setting type: Int32 +# Default value: 0 +Price = 50 + +[BlackSoup] + +# Setting type: String +# Default value: +ItemName = BlackSoup + +# Setting type: Int32 +# Default value: 0 +Price = 15 + +[Bloodbag] + +# Setting type: String +# Default value: +ItemName = Bloodbag + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[BloodPudding] + +# Setting type: String +# Default value: +ItemName = BloodPudding + +# Setting type: Int32 +# Default value: 0 +Price = 60 + +[Blueberries] + +# Setting type: String +# Default value: +ItemName = Blueberries + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[BoarJerky] + +# Setting type: String +# Default value: +ItemName = BoarJerky + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[BombOoze] + +# Setting type: String +# Default value: +ItemName = BombOoze + +# Setting type: Int32 +# Default value: 0 +Price = 50 + +[BoneFragments] + +# Setting type: String +# Default value: +ItemName = BoneFragments + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[Bread] + +# Setting type: String +# Default value: +ItemName = Bread + +# Setting type: Int32 +# Default value: 0 +Price = 25 + +[Bronze] + +# Setting type: String +# Default value: +ItemName = Bronze + +# Setting type: Int32 +# Default value: 0 +Price = 17 + +[BronzeNails] + +# Setting type: String +# Default value: +ItemName = BronzeNails + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[CarrotSoup] + +# Setting type: String +# Default value: +ItemName = CarrotSoup + +# Setting type: Int32 +# Default value: 0 +Price = 10 + +[Chain] + +# Setting type: String +# Default value: +ItemName = Chain + +# Setting type: Int32 +# Default value: 0 +Price = 13 + +[Chitin] + +# Setting type: String +# Default value: +ItemName = Chitin + +# Setting type: Int32 +# Default value: 0 +Price = 40 + +[Cloudberry] + +# Setting type: String +# Default value: +ItemName = Cloudberry + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[Coal] + +# Setting type: String +# Default value: +ItemName = Coal + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[CookedDeerMeat] + +# Setting type: String +# Default value: +ItemName = CookedDeerMeat + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[CookedLoxMeat] + +# Setting type: String +# Default value: +ItemName = CookedLoxMeat + +# Setting type: Int32 +# Default value: 0 +Price = 6 + +[CookedMeat] + +# Setting type: String +# Default value: +ItemName = CookedMeat + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[CookedWolfMeat] + +# Setting type: String +# Default value: +ItemName = CookedWolfMeat + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[Copper] + +# Setting type: String +# Default value: +ItemName = Copper + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[Crystal] + +# Setting type: String +# Default value: +ItemName = Crystal + +# Setting type: Int32 +# Default value: 0 +Price = 18 + +[Dandelion] + +# Setting type: String +# Default value: +ItemName = Dandelion + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[DeerHide] + +# Setting type: String +# Default value: +ItemName = DeerHide + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[DeerStew] + +# Setting type: String +# Default value: +ItemName = DeerStew + +# Setting type: Int32 +# Default value: 0 +Price = 7 + +[DragonEgg] + +# Setting type: String +# Default value: +ItemName = DragonEgg + +# Setting type: Int32 +# Default value: 0 +Price = 100 + +[DragonTear] + +# Setting type: String +# Default value: +ItemName = DragonTear + +# Setting type: Int32 +# Default value: 0 +Price = 24 + +[ElderBark] + +# Setting type: String +# Default value: +ItemName = ElderBark + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[Eyescream] + +# Setting type: String +# Default value: +ItemName = Eyescream + +# Setting type: Int32 +# Default value: 0 +Price = 12 + +[Feathers] + +# Setting type: String +# Default value: +ItemName = Feathers + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[FineWood] + +# Setting type: String +# Default value: +ItemName = FineWood + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[FishCooked] + +# Setting type: String +# Default value: +ItemName = FishCooked + +# Setting type: Int32 +# Default value: 0 +Price = 20 + +[FishWraps] + +# Setting type: String +# Default value: +ItemName = FishWraps + +# Setting type: Int32 +# Default value: 0 +Price = 100 + +[Flint] + +# Setting type: String +# Default value: +ItemName = Flint + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[FreezeGland] + +# Setting type: String +# Default value: +ItemName = FreezeGland + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[GoblinTotem] + +# Setting type: String +# Default value: +ItemName = GoblinTotem + +# Setting type: Int32 +# Default value: 0 +Price = 20 + +[GreydwarfEye] + +# Setting type: String +# Default value: +ItemName = GreydwarfEye + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[Guck] + +# Setting type: String +# Default value: +ItemName = Guck + +# Setting type: Int32 +# Default value: 0 +Price = 20 + +[HardAntler] + +# Setting type: String +# Default value: +ItemName = HardAntler + +# Setting type: Int32 +# Default value: 0 +Price = 20 + +[Honey] + +# Setting type: String +# Default value: +ItemName = Honey + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[Iron] + +# Setting type: String +# Default value: +ItemName = Iron + +# Setting type: Int32 +# Default value: 0 +Price = 30 + +[IronNails] + +# Setting type: String +# Default value: +ItemName = IronNails + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[LeatherScraps] + +# Setting type: String +# Default value: +ItemName = LeatherScraps + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[LinenThread] + +# Setting type: String +# Default value: +ItemName = LinenThread + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[LoxPelt] + +# Setting type: String +# Default value: +ItemName = LoxPelt + +# Setting type: Int32 +# Default value: 0 +Price = 6 + +[LoxPie] + +# Setting type: String +# Default value: +ItemName = LoxPie + +# Setting type: Int32 +# Default value: 0 +Price = 100 + +[MeadFrostResist] + +# Setting type: String +# Default value: +ItemName = MeadFrostResist + +# Setting type: Int32 +# Default value: 0 +Price = 25 + +[MeadHealthMedium] + +# Setting type: String +# Default value: +ItemName = MeadHealthMedium + +# Setting type: Int32 +# Default value: 0 +Price = 30 + +[MeadHealthMinor] + +# Setting type: String +# Default value: +ItemName = MeadHealthMinor + +# Setting type: Int32 +# Default value: 0 +Price = 25 + +[MeadPoisonResist] + +# Setting type: String +# Default value: +ItemName = MeadPoisonResist + +# Setting type: Int32 +# Default value: 0 +Price = 25 + +[MeadStaminaMedium] + +# Setting type: String +# Default value: +ItemName = MeadStaminaMedium + +# Setting type: Int32 +# Default value: 0 +Price = 35 + +[MeadStaminaMinor] + +# Setting type: String +# Default value: +ItemName = MeadStaminaMinor + +# Setting type: Int32 +# Default value: 0 +Price = 24 + +[MeadTasty] + +# Setting type: String +# Default value: +ItemName = MeadTasty + +# Setting type: Int32 +# Default value: 0 +Price = 20 + +[MinceMeatSauce] + +# Setting type: String +# Default value: +ItemName = MinceMeatSauce + +# Setting type: Int32 +# Default value: 0 +Price = 6 + +[Mushroom] + +# Setting type: String +# Default value: +ItemName = Mushroom + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[MushroomYellow] + +# Setting type: String +# Default value: +ItemName = MushroomYellow + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[NeckTailGrilled] + +# Setting type: String +# Default value: +ItemName = NeckTailGrilled + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[Needle] + +# Setting type: String +# Default value: +ItemName = Needle + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[Obsidian] + +# Setting type: String +# Default value: +ItemName = Obsidian + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[OnionSoup] + +# Setting type: String +# Default value: +ItemName = OnionSoup + +# Setting type: Int32 +# Default value: 0 +Price = 8 + +[Ooze] + +# Setting type: String +# Default value: +ItemName = Ooze + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[QueenBee] + +# Setting type: String +# Default value: +ItemName = QueenBee + +# Setting type: Int32 +# Default value: 0 +Price = 100 + +[QueensJam] + +# Setting type: String +# Default value: +ItemName = QueensJam + +# Setting type: Int32 +# Default value: 0 +Price = 8 + +[Raspberry] + +# Setting type: String +# Default value: +ItemName = Raspberry + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[Resin] + +# Setting type: String +# Default value: +ItemName = Resin + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[RoundLog] + +# Setting type: String +# Default value: +ItemName = RoundLog + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[Ruby] + +# Setting type: String +# Default value: +ItemName = Ruby + +# Setting type: Int32 +# Default value: 0 +Price = 50 + +[Sausages] + +# Setting type: String +# Default value: +ItemName = Sausages + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[SerpentMeatCooked] + +# Setting type: String +# Default value: +ItemName = SerpentMeatCooked + +# Setting type: Int32 +# Default value: 0 +Price = 6 + +[SerpentScale] + +# Setting type: String +# Default value: +ItemName = SerpentScale + +# Setting type: Int32 +# Default value: 0 +Price = 50 + +[SerpentStew] + +# Setting type: String +# Default value: +ItemName = SerpentStew + +# Setting type: Int32 +# Default value: 0 +Price = 40 + +[SharpeningStone] + +# Setting type: String +# Default value: +ItemName = SharpeningStone + +# Setting type: Int32 +# Default value: 0 +Price = 10 + +[shocklatesmoothie] + +# Setting type: String +# Default value: +ItemName = shocklatesmoothie + +# Setting type: Int32 +# Default value: 0 +Price = 15 + +[Silver] + +# Setting type: String +# Default value: +ItemName = Silver + +# Setting type: Int32 +# Default value: 0 +Price = 45 + +[SilverNecklace] + +# Setting type: String +# Default value: +ItemName = SilverNecklace + +# Setting type: Int32 +# Default value: 0 +Price = 150 + +[SurtlingCore] + +# Setting type: String +# Default value: +ItemName = SurtlingCore + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[Tar] + +# Setting type: String +# Default value: +ItemName = Tar + +# Setting type: Int32 +# Default value: 0 +Price = 10 + +[Thistle] + +# Setting type: String +# Default value: +ItemName = Thistle + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[Tin] + +# Setting type: String +# Default value: +ItemName = Tin + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[TrollHide] + +# Setting type: String +# Default value: +ItemName = TrollHide + +# Setting type: Int32 +# Default value: 0 +Price = 2 + +[TrophyBlob] + +# Setting type: String +# Default value: +ItemName = TrophyBlob + +# Setting type: Int32 +# Default value: 0 +Price = 13 + +[TrophyBoar] + +# Setting type: String +# Default value: +ItemName = TrophyBoar + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[TrophyBonemass] + +# Setting type: String +# Default value: +ItemName = TrophyBonemass + +# Setting type: Int32 +# Default value: 0 +Price = 39 + +[TrophyDeathsquito] + +# Setting type: String +# Default value: +ItemName = TrophyDeathsquito + +# Setting type: Int32 +# Default value: 0 +Price = 32 + +[TrophyDeer] + +# Setting type: String +# Default value: +ItemName = TrophyDeer + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[TrophyDragonQueen] + +# Setting type: String +# Default value: +ItemName = TrophyDragonQueen + +# Setting type: Int32 +# Default value: 0 +Price = 100 + +[TrophyDraugr] + +# Setting type: String +# Default value: +ItemName = TrophyDraugr + +# Setting type: Int32 +# Default value: 0 +Price = 10 + +[TrophyDraugrElite] + +# Setting type: String +# Default value: +ItemName = TrophyDraugrElite + +# Setting type: Int32 +# Default value: 0 +Price = 11 + +[TrophyEikthyr] + +# Setting type: String +# Default value: +ItemName = TrophyEikthyr + +# Setting type: Int32 +# Default value: 0 +Price = 10 + +[TrophyFenring] + +# Setting type: String +# Default value: +ItemName = TrophyFenring + +# Setting type: Int32 +# Default value: 0 +Price = 250 + +[TrophyFrostTroll] + +# Setting type: String +# Default value: +ItemName = TrophyFrostTroll + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[TrophyGoblin] + +# Setting type: String +# Default value: +ItemName = TrophyGoblin + +# Setting type: Int32 +# Default value: 0 +Price = 39 + +[TrophyGoblinBrute] + +# Setting type: String +# Default value: +ItemName = TrophyGoblinBrute + +# Setting type: Int32 +# Default value: 0 +Price = 52 + +[TrophyGoblinKing] + +# Setting type: String +# Default value: +ItemName = TrophyGoblinKing + +# Setting type: Int32 +# Default value: 0 +Price = 150 + +[TrophyGoblinShaman] + +# Setting type: String +# Default value: +ItemName = TrophyGoblinShaman + +# Setting type: Int32 +# Default value: 0 +Price = 45 + +[TrophyGreydwarf] + +# Setting type: String +# Default value: +ItemName = TrophyGreydwarf + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[TrophyGreydwarfBrute] + +# Setting type: String +# Default value: +ItemName = TrophyGreydwarfBrute + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[TrophyGreydwarfShaman] + +# Setting type: String +# Default value: +ItemName = TrophyGreydwarfShaman + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[TrophyGrowth] + +# Setting type: String +# Default value: +ItemName = TrophyGrowth + +# Setting type: Int32 +# Default value: 0 +Price = 40 + +[TrophyHatchling] + +# Setting type: String +# Default value: +ItemName = TrophyHatchling + +# Setting type: Int32 +# Default value: 0 +Price = 27 + +[TrophyLeech] + +# Setting type: String +# Default value: +ItemName = TrophyLeech + +# Setting type: Int32 +# Default value: 0 +Price = 8 + +[TrophyLox] + +# Setting type: String +# Default value: +ItemName = TrophyLox + +# Setting type: Int32 +# Default value: 0 +Price = 30 + +[TrophyNeck] + +# Setting type: String +# Default value: +ItemName = TrophyNeck + +# Setting type: Int32 +# Default value: 0 +Price = 1 + +[TrophySerpent] + +# Setting type: String +# Default value: +ItemName = TrophySerpent + +# Setting type: Int32 +# Default value: 0 +Price = 150 + +[TrophySGolem] + +# Setting type: String +# Default value: +ItemName = TrophySGolem + +# Setting type: Int32 +# Default value: 0 +Price = 48 + +[TrophySkeleton] + +# Setting type: String +# Default value: +ItemName = TrophySkeleton + +# Setting type: Int32 +# Default value: 0 +Price = 3 + +[TrophySkeletonPoison] + +# Setting type: String +# Default value: +ItemName = TrophySkeletonPoison + +# Setting type: Int32 +# Default value: 0 +Price = 150 + +[TrophySurtling] + +# Setting type: String +# Default value: +ItemName = TrophySurtling + +# Setting type: Int32 +# Default value: 0 +Price = 12 + +[TrophyTheElder] + +# Setting type: String +# Default value: +ItemName = TrophyTheElder + +# Setting type: Int32 +# Default value: 0 +Price = 22 + +[TrophyWolf] + +# Setting type: String +# Default value: +ItemName = TrophyWolf + +# Setting type: Int32 +# Default value: 0 +Price = 24 + +[TrophyWraith] + +# Setting type: String +# Default value: +ItemName = TrophyWraith + +# Setting type: Int32 +# Default value: 0 +Price = 250 + +[TurnipStew] + +# Setting type: String +# Default value: +ItemName = TurnipStew + +# Setting type: Int32 +# Default value: 0 +Price = 15 + +[WitheredBone] + +# Setting type: String +# Default value: +ItemName = WitheredBone + +# Setting type: Int32 +# Default value: 0 +Price = 5 + +[WolfFang] + +# Setting type: String +# Default value: +ItemName = WolfFang + +# Setting type: Int32 +# Default value: 0 +Price = 6 + +[WolfJerky] + +# Setting type: String +# Default value: +ItemName = WolfJerky + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[WolfPelt] + +# Setting type: String +# Default value: +ItemName = WolfPelt + +# Setting type: Int32 +# Default value: 0 +Price = 4 + +[YagluthDrop] + +# Setting type: String +# Default value: +ItemName = YagluthDrop + +# Setting type: Int32 +# Default value: 0 +Price = 51 + diff --git a/ValheimClient/BepInEx/config/sell_that.cfg b/ValheimClient/BepInEx/config/sell_that.cfg new file mode 100644 index 0000000..2d314cf --- /dev/null +++ b/ValheimClient/BepInEx/config/sell_that.cfg @@ -0,0 +1,28 @@ +[Debug] + +# Setting type: Boolean +# Default value: false +EnableTrace = false + +# Setting type: Boolean +# Default value: false +EnableDebug = false + +# Setting type: Boolean +# Default value: false +DumpDefaultTraderItemsToFile = false + +[General] + +# Setting type: Boolean +# Default value: false +StopTouchingMyConfigs = false + +# Setting type: Boolean +# Default value: true +ClearAllExisting = true + +# Setting type: Boolean +# Default value: true +EnableMod = true + diff --git a/ValheimClient/BepInEx/config/sell_that.selling.cfg b/ValheimClient/BepInEx/config/sell_that.selling.cfg new file mode 100644 index 0000000..8332e26 --- /dev/null +++ b/ValheimClient/BepInEx/config/sell_that.selling.cfg @@ -0,0 +1,132 @@ +[BeltStrength] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 2 + +# Setting type: String +# Default value: +ItemName = BeltStrength + +# Setting type: Int32 +# Default value: 1 +StackSize = 1 + +# Setting type: Int32 +# Default value: 1 +Price = 950 + +[FishingBait] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 5 + +# Setting type: String +# Default value: +ItemName = FishingBait + +# Setting type: Int32 +# Default value: 1 +StackSize = 50 + +# Setting type: Int32 +# Default value: 1 +Price = 10 + +[FishingRod] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 4 + +# Setting type: String +# Default value: +ItemName = FishingRod + +# Setting type: Int32 +# Default value: 1 +StackSize = 1 + +# Setting type: Int32 +# Default value: 1 +Price = 350 + +[HelmetDverger] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 1 + +# Setting type: String +# Default value: +ItemName = HelmetDverger + +# Setting type: Int32 +# Default value: 1 +StackSize = 1 + +# Setting type: Int32 +# Default value: 1 +Price = 620 + +[HelmetYule] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 0 + +# Setting type: String +# Default value: +ItemName = HelmetYule + +# Setting type: Int32 +# Default value: 1 +StackSize = 1 + +# Setting type: Int32 +# Default value: 1 +Price = 100 + +[YmirRemains] + +# Setting type: Boolean +# Default value: true +Enabled = true + +# Setting type: Int32 +# Default value: -1 +Order = 3 + +# Setting type: String +# Default value: +ItemName = YmirRemains + +# Setting type: Int32 +# Default value: 1 +StackSize = 1 + +# Setting type: Int32 +# Default value: 1 +Price = 120 + diff --git a/ValheimClient/BepInEx/config/valheim_plus.cfg b/ValheimClient/BepInEx/config/valheim_plus.cfg new file mode 100644 index 0000000..6405b3d --- /dev/null +++ b/ValheimClient/BepInEx/config/valheim_plus.cfg @@ -0,0 +1,1042 @@ +[ValheimPlus] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#ValheimPlus +enabled = true + +; Display the Valheim Plus logo in the main menu +mainMenuLogo = true + +; Display the advertisement of our server hosting partner on the server browser menu +serverBrowserAdvertisement = false + +[AdvancedBuildingMode] + +; https://docs.unity3d.com/ScriptReference/KeyCode.html <- a list of keycodes +; Change false to true to enable this section, if you set this to false the mode will not be accessible. https://valheim.plus/documentation/list#AdvancedBuildingMode +enabled = true + +; Enter the advanced building mode with this key when building +enterAdvancedBuildingMode = F1 + +; Exit the advanced building mode with this key when building +exitAdvancedBuildingMode = F3 + +; Copy the object rotation of the currently selected object in ABM +copyObjectRotation = Keypad7 + +; Apply the copied object rotation to the currently selected object in ABM +pasteObjectRotation = Keypad8 + +; Increases the amount an object rotates and moves. Holding Shift will increase in increments of 10 instead of 1. +increaseScrollSpeed = KeypadPlus + +; Decreases the amount an object rotates and moves. Holding Shift will decrease in increments of 10 instead of 1. +decreaseScrollSpeed = KeypadMinus + +[AdvancedEditingMode] + +; https://docs.unity3d.com/ScriptReference/KeyCode.html <- a list of keycodes +; Change false to true to enable this section, if you set this to false the mode will not be accessible. https://valheim.plus/documentation/list#AdvancedEditingMode +enabled = true + +; Enter the advanced editing mode with this key +enterAdvancedEditingMode = Keypad0 + +; Reset the object to its original position and rotation +resetAdvancedEditingMode = F7 + +; Exit the advanced editing mode with this key and reset the object +abortAndExitAdvancedEditingMode = F8 + +; Confirm the placement of the object and place it +confirmPlacementOfAdvancedEditingMode = KeypadEnter + +; Copy the object rotation of the currently selected object in AEM +copyObjectRotation = Keypad7 + +; Apply the copied object rotation to the currently selected object in AEM +pasteObjectRotation = Keypad8 + +; Increases the amount an object rotates and moves. Holding Shift will increase in increments of 10 instead of 1. +increaseScrollSpeed = KeypadPlus + +; Decreases the amount an object rotates and moves. Holding Shift will decrease in increments of 10 instead of 1. +decreaseScrollSpeed = KeypadMinus + +[Bed] + +; Change false to true to enable this section +enabled = true + +; Change false to true to enable sleeping without setting bed as spawn. +; When hovering over a bed you will be presented with a Hot-Key 'LShift+E'. This Hot-Key will allow for you to sleep on any bed without having to set a spawn-point. +sleepWithoutSpawn = true + +; Change false to true to enable sleeping on only unclaimed beds without setting bed as spawn. +; With this option enabled only beds that are not claimed by other players can be slept on without setting spawn-point using 'Shift+E' +unclaimedBedsOnly = true + +[Beehive] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Beehive +enabled = true + +; Configure the speed at which the bees produce honey in seconds, 1200 seconds are 24 ingame hours. +honeyProductionSpeed = 1200 + +; Configure the maximum amount of honey in beehives. +maximumHoneyPerBeehive = 16 + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The range of the chest detection for the auto deposit feature. +; Maximum is 50 +autoDepositRange = 20 + +; Display the minutes and seconds until the beehive produces honey on crosshair hover. +showDuration = true + +[Building] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Building +enabled = true + +; Remove some of the Invalid placement messages, most notably provides the ability to place objects into other objects +noInvalidPlacementRestriction = true + +; Removes the "Mystical forces" building prevention and allows destruction of build objects in those areas with the hammer. +noMysticalForcesPreventPlacementRestriction = true + +; Removes the weather damage from rain and water erosion. +noWeatherDamage = true + +; The maximum range in meters that you can place build objects at inside the hammer build mode. +maximumPlacementDistance = 16 + +; The radius, in meters, in which a piece must be to contribute to the comfort level. +pieceComfortRadius = 20 + +; When destroying a building piece, setting this to true will ensure it always drops full resources. +; We recommend to enable this if you use this section. +alwaysDropResources = true + +; When destroying a building piece, setting this to true will ensure it always drops pieces that the devs have marked as "do not drop". +; We recommend to enable this if you use this section. +alwaysDropExcludedResources = true + +; Setting this to true will cause repairing with the hammer to repair in a radius instead of a single piece. +enableAreaRepair = true + +; Sets the area repair radius of enableAreaRepair. A value of 7.5 would mean your repair radius is 7.5 meters. +; Requires enableAreaRepair=true +areaRepairRadius = 7.5 + +[Camera] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Camera +enabled = false + +; The maximum zoom distance to your character in-game. +; Default is 6 +cameraMaximumZoomDistance = 6 + +; The maximum zoom distance to your character when in a boat. +; Default is 6 +cameraBoatMaximumZoomDistance = 6 + +; The in-game camera FOV. +; Default is 65 +cameraFOV = 65 + +[Experience] + +; Change false to true to enable this section. This section contains modifiers. https://valheim.plus/documentation/list#Experience +; Modifiers are increases and reduction in percent declared by 50, or -50. The value 50 will increase experience gained by 50%, -50 will reduce experience gained by 50%. +enabled = true + +; The modifier value for the experience gained of swords. +swords = 100 + +; The modifier value for the experience gained of knives. +knives = 100 + +; The modifier value for the experience gained of clubs. +clubs = 100 + +; The modifier value for the experience gained of polearms. +polearms = 100 + +; The modifier value for the experience gained of spears. +spears = 100 + +; The modifier value for the experience gained of blocking. +blocking = 100 + +; The modifier value for the experience gained of axes. +axes = 100 + +; The modifier value for the experience gained of bows. +bows = 100 + +; The modifier value for the experience gained of fire magic. +fireMagic = 100 + +; The modifier value for the experience gained of frost magic. +frostMagic = 100 + +; The modifier value for the experience gained of unarmed. +unarmed = 200 + +; The modifier value for the experience gained of mining. +pickaxes = 100 + +; The modifier value for the experience gained of wood cutting. +woodCutting = 100 + +; The modifier value for the experience gained of jumping. +jump = 100 + +; The modifier value for the experience gained of sneaking. +sneak = 100 + +; The modifier value for the experience gained of running. +run = 100 + +; The modifier value for the experience gained of swimming. +swim = 100 + +[Fermenter] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Fermenter +enabled = true + +; Configure the time that the fermenter takes to produce its product, 2400 seconds are 48 ingame hours. +fermenterDuration = 1200 + +; Configure the total amount of produced items from a fermenter. +fermenterItemsProduced = 6 + +; Display the minutes and seconds until the fermenter is done on crosshair hover. +showDuration = true + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; Automatically pull meads from nearby chests to be placed inside the Fermenter as soon as its empty. +autoFuel = false + +; This option prevents the fermenter to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and auto fuel features +; Maximum is 50 +autoRange = 20 + +[FireSource] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#FireSource +enabled = true + +; If set to true, torch-type fire sources will stay at max fuel level once filled. +; Applies to: wood torches, iron torches, green torches, sconces and brazier. +torches = true + +; If set to true, non torch-type fire sources will stay at max fuel level once filled. +fires = true + +; Automatically pull wood from nearby chests to be placed inside the Fire as soon as its empty. +autoFuel = false + +; This option prevents the Fire to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto fuel features. +; Maximum is 50 +autoRange = 10 + +[Food] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Food +enabled = true + +; Increase or reduce the time that food lasts by %. +; The value 50 would cause food to run out 50% slower, -50% would cause the food to run out 50% faster. +foodDurationMultiplier = 100 + +; This option prevents food degrading over time - in other words, it retains its maximum benefit until it runs out instead of reducing its effect over time. +disableFoodDegradation = false + +[Smelter] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Smelter +enabled = true + +; Maximum amount of ore in a Smelter. +maximumOre = 20 + +; Maximum amount of coal in a Smelter. +maximumCoal = 40 + +; The total amount of coal used to produce a single smelted ingot. +coalUsedPerProduct = 2 + +; The time it takes for the Smelter to produce a single ingot in seconds. +productionSpeed = 30 + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The Smelter will pull coal and raw materials from nearby chests to be automatically added to it when its empty. +autoFuel = false + +; This option prevents the Smelter to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and auto fuel features. +; Maximum is 50 +autoRange = 20 + +[Furnace] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Furnace +enabled = true + +; Maximum amount of ore in a Furnace. +maximumOre = 20 + +; Maximum amount of coal in a Furnace. +maximumCoal = 40 + +; The total amount of coal used to produce a single smelted ingot. +coalUsedPerProduct = 2 + +; The time it takes for the Furnace to produce a single ingot in seconds. +productionSpeed = 30 + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The Furnace will pull coal and raw materials from nearby chests to be automatically added to it when its empty. +autoFuel = false + +; This option prevents the Furnace to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and auto fuel features. +; Maximum is 50 +autoRange = 20 + +; This option allows all ores inside the Furnace. +allowAllOres = true + +[Game] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Game +enabled = false + +; The games damage multiplier per person nearby in difficultyScaleRange(m) radius. +; Default is 4% monster damage increase per player in radius. +gameDifficultyDamageScale = 4 + +; The games health multiplier per person nearby in difficultyScaleRange(m) radius. +; Default is 40% monster health increase per player in radius. +gameDifficultyHealthScale = 40 + +; Adds additional players to the difficulty calculation in multiplayer unrelated to the actual amount. +; This option is disabled if its set to 0. +extraPlayerCountNearby = 0 + +; Sets the nearby player count always to this value + extraPlayerCountNearby. +; This option is disabled if its set to 0. +setFixedPlayerCountTo = 0 + +; The range in meters at which other players count towards nearby players for the difficulty scale. +difficultyScaleRange = 200 + +; If you set this to true, all portals will be disabled. +disablePortals = false + +; If you set this to true the console will be force enabled in-game, false will force disable it. +forceConsole = true + +;If you set this to true, portal names will be displayed in big text in center of screen. +bigPortalNames = false + +;Remove dense fog from the game. +disableFog = false + +[Hotkeys] + +; https://docs.unity3d.com/ScriptReference/KeyCode.html <- a list of keycodes +; Change false to true to enable this section. https://valheim.plus/documentation/list#Hotkeys +enabled = false + +; Roll forwards on hot key pressed. +rollForwards = F9 + +; Roll backwards on hot key pressed. +rollBackwards = F10 + +[Items] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Items +enabled = true + +; Enables you to teleport with ores and other usually teleport restricted objects. +noTeleportPrevention = false + +; Increase or reduce item weight by a modifier in percent. +; The value -50 will reduce item weight of every object by 50%, 50 will increase the weight of every item by 50%. +baseItemWeightReduction = -50 + +; Increase or reduce the size of all maximum item stacks by a modifier in percent. +; The value 50 would set a usual item stack of 100 to be 150. +; The value -50 would set a usual item stack of 100 to be 50. +itemStackMultiplier = 1000 + +; Set duration that dropped items stay on the ground before they are despawning. Game default is 3600 seconds. +droppedItemOnGroundDurationInSeconds = 3600 + +[Hud] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#HUD +enabled = true + +; Shows the required amount of items AND the amount of items in your inventory in build mode and while crafting. +; This is enabled when the CraftFromChest section is enabled. +showRequiredItems = true + +; Shows small notifications about all skill experienced gained in the top left corner. +experienceGainedNotifications = false + +; Set to true to remove the red screen flash overlay when the player takes damage. +removeDamageFlash = false + +; If bow is in hotbar, display current ammo & total ammo under hotbar icon - never (0), when equipped (1), or always (2). +displayBowAmmoCounts = 1 + +[Gathering] + +; Change false to true to enable this section. This section contains modifiers. Modifiers are increases and reduction in percent declared by 50, or -50. https://valheim.plus/documentation/list#Gathering +enabled = true + +; Modify the chance to drop resources from resource nodes affected by this category. This only works on resource nodes that do not have guaranteed drops. +; As example by default scrap piles in dungeons have a 20% chance to drop a item, if you set this option to 200, you will then have a 60% chance to drop iron. +dropChance = 50 + +; Each of these values increase or reduce the dropped items from destroyed objects with tools (Stones, Trees, Resource nodes, etc.) by %. +; The value 50 will increase the dropped wood from trees from 10 to 15. The value -50 will reduce the amount of dropped wood from 10 to 5. +wood = 0 +stone = 0 +fineWood = 0 +coreWood = 0 +elderBark = 0 +ironScrap = 50 +tinOre = 50 +copperOre = 50 +silverOre = 50 +chitin = 50 + +[Pickable] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Pickable +; Each value below (in percent) will modify the yield when "picking" items (default key E) such as berries and flowers. +; A value of 100 will double drops, 200 will triple and so on. +enabled = false + +; All berries, all mushrooms, and carrots +edibles = 0 + +; Barley, Flax, Dandelion, Thistle, Carrot Seeds, Turnip Seeds, Turnip +flowersAndIngredients = 0 + +; Bone Fragments, Flint, Stone, Wood (branches on the ground) +materials = 0 + +; Amber, Amber Pearl, Coins, Ruby +valuables = 0 + +; Surtling Core only +surtlingCores = 0 + +[Durability] + +; Change false to true to enable this section. This section contains modifiers. https://valheim.plus/documentation/list#Durability +; Modifiers are increases and reduction in percent declared by 50, or -50. +enabled = true + +; Each of these values increase or reduce the durability of the specific item type by %. +; The value 50 will increase the durability from 100 to 150. The value -50 will reduce the durability from 100 to 50. +axes = 100 +pickaxes = 500 +hammer = 500 +cultivator = 500 +hoe = 500 +weapons = 100 +armor = 100 +bows = 100 +shields = 100 +torch = 100 + +[Armor] + +; Change false to true to enable this section. This section contains modifiers. https://valheim.plus/documentation/list#Armor +; Modifiers are increases and reduction in percent declared by 50, or -50. +enabled = false + +; Each of these values increase or reduce the armor of the specific item type by %. +; The value 50 will increase the armor from 14 to 21. The value -50 will reduce the armor from 14 to 7. +helmets = 0 +chests = 0 +legs = 0 +capes = 0 + +[Kiln] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Kiln +enabled = true + +; Maximum amount of wood in a Kiln. +maximumWood = 50 + +; Change false to true to disable Fine Wood processing. +dontProcessFineWood = false + +; Change false to true to disabled Round Log processing. +dontProcessRoundLog = false + +; The time it takes for the Kiln to produce a single piece of coal in seconds. +productionSpeed = 15 + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The Kiln will pull wood from nearby chests to be automatically added to it when its empty. +; This option respects the dontProcessFineWood and dontProcessRoundLog settings. +autoFuel = false + +; Stops autoFuel (looking for fuel) when there is at leasts this quantity of Coal in nearby chests +; (ignored if set to 0) +stopAutoFuelThreshold = 0 + +; This option prevents the Kiln to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and fuel features. +; Maximum is 50 +autoRange = 20 + +[Map] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Map +enabled = true + +; With this enabled you will receive the same exploration progression as other players on the server. +; This will also enable the option for the server to sync everyones exploration progression on connecting to the server. +shareMapProgression = true + +; The radius of the map that you explore when moving. +exploreRadius = 300 + +; Prevents you and other people on the server to turn off their map sharing option. +preventPlayerFromTurningOffPublicPosition = true + +; Allow pins to be shared +shareablePins = true + +; Shares all pins always +shareAllPins = false + +; Display carts and boats on the map +displayCartsAndBoats = true + +[Player] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Player +enabled = true + +; The base amount of carry weight of your character. +baseMaximumWeight = 300 + +; Increase the buff you receive to your carry weight from Megingjord's girdle. +baseMegingjordBuff = 150 + +; Increase auto pickup range of all items. +baseAutoPickUpRange = 4 + +; Disable all types of camera shake. +disableCameraShake = true + +; The base unarmed damage multiplied by your skill level. 120 will result in a maximum of up to 12 damage when you have a skill level of 10. +baseUnarmedDamage = 60 + +; When changed to true, you will not be permitted to place a crop within the grow radius of another crop. +cropNotifier = true + +; How many seconds each comfort level contributes to the rested bonus. +restSecondsPerComfortLevel = 120 + +; Change the death penalty in percentage, where higher will increase the death penalty and lower will reduce it. +; This is a modifier value. 50 will increase it by 50%, -50 will reduce it by 50%. +deathPenaltyMultiplier = 0 + +; If set to true, this option will automatically repair your equipment when you interact with the appropriate workbench. +autoRepair = true + +; Boss buff duration (seconds) +guardianBuffDuration = 300 + +; Boss buff cooldown (seconds) +guardianBuffCooldown = 1200 + +; Disable the Guardian Buff animation +disableGuardianBuffAnimation = false + +; If set to true, when equipping a one-handed weapon, the best shield from your inventory is automatically equipped. +; (Best is determined by highest block power) +autoEquipShield = false + +; If set to true, weapon switches requested mid-attack will be carried out when the current attack is finished instead of being ignored. +queueWeaponChanges = true + +; If set to true, you will always skip the intro of the game. +skipIntro = true + +; If set to false, disables the "I have arrived!" message on player spawn. +iHaveArrivedOnSpawn = true + +; If set to true, items will be re-equipped when you exit water after swimming (if they were hidden automatically) +reequipItemsAfterSwimming = true + +; This value represents how much the fall damage should be scaled in +/- %. This is a modifier value. +; The value 50 would result in 50% increased fall damage. The value -50 would result in 50% reduced fall damage. +fallDamageScalePercent = -50 + +; Max fall damage. Game default is 100 (so with enough health, falls can't kill). +maxFallDamage = 100 + +; If set to true, all tutorials will skip from now on. You can turn this config off and reset the tutorial (in the settings) at any time. +skipTutorials = false + +; Disable encumbered +disableEncumbered = false + +[Server] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Server +enabled = true + +; Modify the maximum amount of players on your Server. +maxPlayers = 10 + +; Removes the requirement to have a server password. +disableServerPassword = false + +; This settings add a version control check to make sure that people that try to join your game or the server you try to join has V+ installed +; WE HEAVILY RECOMMEND TO NEVER DISABLE THIS! +enforceMod = true + +; Changes whether the server will force it's config on clients that connect. Only affects servers. +; WE HEAVILY RECOMMEND TO NEVER DISABLE THIS! +serverSyncsConfig = true + +; If false allows you to keep your own defined hotkeys instead of synchronising the ones declared for the server. +; Sections need to be enabled in your local configuration to load hotkeys. +; This is a client side setting and not affected by server settings. +serverSyncHotkeys = false + +[Stamina] + +; Change false to true to enable this section. This section contains modifiers. https://valheim.plus/documentation/list#Stamina +; Modifiers are increases and reduction in percent declared by 50, or -50. +enabled = true + +; Changes the amount of stamina cost of using the dodge roll by % +dodgeStaminaUsage = -50 + +; Changes the stamina drain of being overweight by % +encumberedStaminaDrain = -50 + +; Changes the stamina cost of jumping by % +jumpStaminaDrain = -50 + +; Changes the stamina cost of running by % +runStaminaDrain = -50 + +; Changes the stamina drain by sneaking by % +sneakStaminaDrain = -50 + +; Changes the total amount of stamina recovered per second by % +staminaRegen = 0 + +; Changes the delay until stamina regeneration sets in by % +staminaRegenDelay = 0 + +; Changes the stamina drain of swimming by % +swimStaminaDrain = -50 + +[StaminaUsage] + +; Change false to true to enable this section. This section contains modifiers. https://valheim.plus/documentation/list#StaminaUsage +; Modifiers are increases and reduction in percent declared by 50, or -50. +enabled = true + +; Each of these values change the respective tool in stamina usage by increases and reduction in percent declared by 50, or -50. +axes = -50 +blocking = -25 +bows = -25 +clubs = -25 +knives = -25 +pickaxes = -75 +polearms = -25 +spears = -25 +swords = -25 +unarmed = -50 +hammer = -75 +hoe = -75 +cultivator = -75 + +[StructuralIntegrity] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#StructuralIntegrity +enabled = true + +; Disables the entire structural integrity system and allows for placement in free air, does not prevent building damage. +disableStructuralIntegrity = false + +; Disables any damage from anything to all player built structures. Does not prevent damage from structural integrity. +disableDamageToPlayerStructures = true + +; Disables any damage from anything to all player built boats. +disableDamageToPlayerBoats = true + +; Disables water force damage to all player built boats. +disableWaterDamageToPlayerBoats = true + +; Each of these values reduce the loss of structural integrity by distance by % less. +; The value 100 would result in disabled structural integrity over distance, does not allow for placement in free air without disableStructuralIntegrity. +wood = 0 +stone = 0 +iron = 0 +hardWood = 0 + +[Ward] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Ward +enabled = true + +; The range of wards by meters. +wardRange = 0 + +; Set the enemy spawn radius around wards in meters +; This value equals wardRange if its set to 0. +wardEnemySpawnRange = 0 + +[Workbench] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Workbench +enabled = true + +; Set the workbench radius in meters. +workbenchRange = 100 + +; Set the enemy spawn radius around workbenches in meters +; This value equals workbenchRange if its set to 0. +workbenchEnemySpawnRange = 0 + +; Sets the workbench attachment (e.g. anvil) radius. +workbenchAttachmentRange = 20 + +; Disables the roof and exposure requirement to use a workbench. +disableRoofCheck = true + +[Wagon] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Wagon +enabled = true + +; Change the base wagon physical mass of the wagon object. +; This is essentially the base weight of a cart. +wagonBaseMass = 20 + +; This value changes the physical weight of wagons by +/- more/less from item weight inside. +; The value 50 would increase the weight by 50% more. The value -100 would remove the entire extra weight. +wagonExtraMassFromItems = -50 + +[Inventory] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Inventory +enabled = true + +; Player inventory number of rows (inventory is resized up to 6 rows, higher values will add a scrollbar). default 4, min 4, max 20 +playerInventoryRows = 4 + +; Wood chest number of columns +; (default 5, 5 min, 8 max) +woodChestColumns = 8 + +; Wood chest number of rows (more than 4 rows will add a scrollbar). +; (default 2, min 2, 10 max) +woodChestRows = 2 + +; Personal chest number of columns. +; (default 3, 3 min, 8 max) +personalChestColumns = 8 + +; Personal chest number of rows +; (default 2, 2 min, 20 max) +personalChestRows = 4 + +; Iron chests already have 8 columns by default but now you can lower it +; (default 8, min 6, max 8) +ironChestColumns = 8 + +; Iron chest number of rows (more than 4 rows will add a scrollbar) +; (default 4, min 3, max 20) +ironChestRows = 8 + +; Cart (Wagon) inventory number of columns +; (default 8, min 6, max 8) +cartInventoryColumns = 8 + +; Cart (Wagon) inventory number of rows (more than 4 rows will add a scrollbar) +; (default 3, min 3, max 30) +cartInventoryRows = 6 + +; Karve (small boat) inventory number of columns +; (default 2, min 2, max 8) +karveInventoryColumns = 8 + +; Karve (small boat) inventory number of rows (more than 4 rows will add a scrollbar) +; (default 2, min 2, max 30) +karveInventoryRows = 2 + +; Longboat (large boat) inventory number of columns +; (default 8, min 6, max 8) +longboatInventoryColumns = 8 + +; Longboat (large boat) inventory number of rows (more than 4 rows will add a scrollbar) +; (default 3, min 3, max 30) +longboatInventoryRows = 6 + +; By default tools and weapons go into inventories top to bottom and other materials bottom to top. +; Set to true to make all items go into the inventory top to bottom. +inventoryFillTopToBottom = false + +; By default items go to their original position when picking up your tombstone. +; Set to true to make all stacks try to merge with an existing stack first. +mergeWithExistingStacks = false + +[FreePlacementRotation] + +; Change false to true to enable this section, if you set this to false the mode will not be accessible. https://valheim.plus/documentation/list#FreePlacementRotation +enabled = false + +; Rotates placement marker by 1 degree with keep ability to attach to nearly pieces. +rotateY = LeftAlt +rotateX = C +rotateZ = V + +; Copy rotation of placement marker from target piece in front of you. +copyRotationParallel = F + +; Set rotation to be perpendicular to piece in front of you. +copyRotationPerpendicular = G + +[Shields] + +; Change false to true to enable this section, if you set this to false the mode will not be accessible. https://valheim.plus/documentation/list#Shields +enabled = false + +; Increase or decrease the block value on all shields in %. -50 would be 50% less block rating, 50 would be 50% more block rating. +blockRating = 0 + +[FirstPerson] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#FirstPerson +enabled = true + +; Hotkey to enable First Person. +hotkey = F10 + +; Default Field Of View to use. +defaultFOV = 65.0 + +; Hotkey to raise Field Of View. +raiseFOVHotkey = PageUp + +; Hotkey to lower Field Of View. +lowerFOVHotkey = PageDown + +[GridAlignment] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#GridAlignment +; This offers a global fixed grid system to make precise placements. +enabled = true + +; Key to enable grid alignment. +align = LeftAlt + +; Key to toggle grid alignment. +alignToggle = F7 + +; Key to change the default alignment. +changeDefaultAlignment = F6 + +[CraftFromChest] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#CraftFromChest +; This feature allows you to craft from nearby chests when in range. +enabled = true + +; Change false to true to disable this feature when using a Cooking Station. +disableCookingStation = false + +; If in a workbench area, uses it as reference point when scanning for chests. +checkFromWorkbench = true + +; This option prevents crafting to pull items from warded areas if the player doesnt have access to it. +ignorePrivateAreaCheck = false + +; The range of the chest detection in meters. +range = 50 + +; The interval in seconds that the feature scans your nearby chests. +; We recommend not going below 3 seconds. +lookupInterval = 3 + +[Windmill] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Windmill +enabled = true + +; Maximum amount of barley in a windmill. +maximumBarley = 100 + +; The time it takes for the windmill to produce a single ingot in seconds. +productionSpeed = 10 + +; Ignore wind intensity so it always takes the production speed value to process one barley. +ignoreWindIntensity = false + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The Windmill will pull barley from nearby chests to be automatically added to it when its empty. +autoFuel = false + +; This option prevents the Windmill to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and auto fuel features. +; Maximum is 50 +autoRange = 20 + +[SpinningWheel] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#SpinningWheel +enabled = true + +; Maximum amount of flax in a spinning wheel. +maximumFlax = 100 + +; The time it takes for the spinning wheel to produce linen thread. +productionSpeed = 30 + +; Instead of dropping the items, they will be placed inside the nearest nearby chests. +autoDeposit = true + +; The Spinning Wheel will pull flax from nearby chests to be automatically added to it when its empty. +autoFuel = false + +; This option prevents the Spinning Wheel to pull items from warded areas if it isn't placed inside of it. +; For convenience, we recommend this to be set to true. +ignorePrivateAreaCheck = true + +; The range of the chest detection for the auto deposit and auto fuel features +; Maximum is 50 +autoRange = 20 + +[PlayerProjectile] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#PlayerProjectile +enabled = true + +; Value of 50 would increase the minimum charge velocity from 2 to 3. +playerMinChargeVelocityMultiplier = 50 + +; Value of 50 would increase the maximum charge velocity (of Finwood bow) from 50 to 75. +playerMaxChargeVelocityMultiplier = 50 + +; Value of (+)50 increase in accuracy will change the variance of arrows 20 degree to 10 degree at the point of minimum charge release. +playerMinChargeAccuracyMultiplier = 50 + +; Value of (+)50 increase in accuracy will change the variance of arrows 1 degree to 0.5 degree at the point of maximum charge release. +playerMaxChargeAccuracyMultiplier = 50 + +; Enabling this option will linearly scale by skill level from the base values of the weapon to the modified values (according to multipliers above). +enableScaleWithSkillLevel = true + +[MonsterProjectile] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#MonsterProjectile +enabled = false + +; Value of 10 would increase the projectile velocity from 50 to 55. +monsterMaxChargeVelocityMultiplier = 0 + +; Value of (+)10 increase in accuracy will change the variance of projectile 1 degree to 0.9 degree at the point of projectile release. +monsterMaxChargeAccuracyMultiplier = 0 + +[Tameable] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Tameable +enabled = true + +; Modify what happens when a tamed creature is attacked. +; 0 = normal, 1 = essential(deadly attacks stun instead of kill), 2 = immortal. +mortality = 1 + +; Change to true so only the owner of a tamed creature can hurt it. This will circumvent the mortality setting, so even if tamed creatures are immortal, the owner can still kill them. +ownerDamageOverride = true + +; How long it takes for a tamed creature to recover if mortality is set to 1(essential) and they are stunned. +stunRecoveryTime = 10 + +[GameClock] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#GameClock +enabled = false + +; Change time formatting from 24hr to AM-PM. +useAMPM = false + +; Change font size of time text. +textFontSize = 34 + +; Change how red the time text is (51/255). +textRedChannel = 248 + +; Change how green the time text is (51/255). +textGreenChannel = 105 + +; Change how blue the time text is (51/255). +textBlueChannel = 0 + +; Change how transparent the time text is (255 is solid with no transparency). +textTransparencyChannel = 255 + +[Brightness] + +; Change false to true to enable this section. https://valheim.plus/documentation/list#Brightness +enabled = false + +; Changes how bright it looks at night. A value between 5 and 10 will result in nearly double in brightness at night. +nightBrightnessMultiplier = 0 diff --git a/ValheimClient/BepInEx/core/0Harmony.dll b/ValheimClient/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..da46f27 Binary files /dev/null and b/ValheimClient/BepInEx/core/0Harmony.dll differ diff --git a/ValheimClient/BepInEx/core/0Harmony.xml b/ValheimClient/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..2bee96c --- /dev/null +++ b/ValheimClient/BepInEx/core/0Harmony.xml @@ -0,0 +1,4149 @@ + + + + 0Harmony + + + + A factory to create delegate types + + + + Instance for the delegate type factory + + + Exists for API compatibility with Harmony + + + + + Creates a delegate type for a method + + Type of the return value + Types of the arguments + The new delegate type for the given type info + + + + Creates a delegate type for a method + + Type of the return value + Types of the arguments + Calling convention. If specified, adds to the delegate type + The new delegate type for the given type info + + + Creates a delegate type for a method + The method + The new delegate type + + + Creates a delegate type for a method + The method + Calling convention. If specified, adds to the delegate type. + The new delegate type + + + A getter delegate type + Type that getter gets field/property value from + Type of the value that getter gets + The instance get getter uses + An delegate + + + + A setter delegate type + Type that setter sets field/property value for + Type of the value that setter sets + The instance the setter uses + The value the setter uses + An delegate + + + + A constructor delegate type + Type that constructor creates + An delegate + + + + A helper class for fast access to getters and setters + + + Creates an instantiation delegate + Type that constructor creates + The new instantiation delegate + + + + Creates an getter delegate for a property + Type that getter reads property from + Type of the property that gets accessed + The property + The new getter delegate + + + + Creates an getter delegate for a field + Type that getter reads field from + Type of the field that gets accessed + The field + The new getter delegate + + + + Creates an getter delegate for a field (with a list of possible field names) + Type that getter reads field/property from + Type of the field/property that gets accessed + A list of possible field names + The new getter delegate + + + + Creates an setter delegate + Type that setter assigns property value to + Type of the property that gets assigned + The property + The new setter delegate + + + + Creates an setter delegate for a field + Type that setter assigns field value to + Type of the field that gets assigned + The field + The new getter delegate + + + + A delegate to invoke a method + The instance + The method parameters + The method result + + + A helper class to invoke method with delegates + + + Creates a fast invocation handler from a method + The method to invoke + Controls if boxed value object is accessed/updated directly + The + + + The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array + passed to the fast invocation handler. + Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object. + Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array. + For example, + + var val = 5; + var box = (object)val; + var arr = new object[] { box }; + handler(arr); // for a method with parameter signature: ref/out/in int + + + + + If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called, + such that all references to the boxed object reflect the potentially updated value. + In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0] + now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object. + + + If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object, + such that potential updates to the value are reflected only in the arguments array. + In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10. + + + + + Patch function helpers + + + Sorts patch methods by their priority rules + The original method + Patches to sort + Use debug mode + The sorted patch methods + + + + Sorts patch methods by their priority rules + The original method + Patches to sort + Use debug mode + The sorted patch methods + + + + Creates new replacement method with the latest patches and detours the original method + The original method + Information describing the patches + The newly created replacement method + + + + + High-level IL code manipulator for MonoMod that allows to manipulate a method as a stream of CodeInstructions. + + + + + Initialize IL transpiler + + Body of the method to transpile + Whether to always log everything for this instance + + + + Adds a transpiler method that edits the IL of the given method + + Transpiler method + Currently not implemented + + + + Processes and writes IL to the provided method body. + Note that this cleans the existing method body (removes insturctions and exception handlers). + + Method body to write to. + Original method that transpiler can optionally call into + + One of IL opcodes contains a CallSide (e.g. calli), which is currently not + fully supported. + + One of IL opcodes with an operand contains a null operand. + + + + Normalizes instructions into a consistent format for passing to transpilers. + Converts short branches to long, ensures that certain fields are properly initialized. + + Enumerable of instructions + Enumerable of normalized instructions + + + + Helper wrapper around ILProcessor to allow emitting code at certain positions + + + + + Write method body to a ILDasm -like representation + + Method body to write + String representation of the method body (locals and instruction) + Unexpected exception block type + + + + Patching methods potentially messes up the stack. + Especially calls to GetExecutingAssembly won't turn in correct methods + + + + Creates a patch sorter + Array of patches that will be sorted + Use debugging + + + Sorts internal PatchSortingWrapper collection and caches the results. + After first run the result is provided from the cache. + The original method + The sorted patch methods + + + Sorts internal PatchSortingWrapper collection and caches the results. + After first run the result is provided from the cache. + The original method + The sorted patch methods as instance + + + Checks if the sorter was created with the same patch list and as a result can be reused to + get the sorted order of the patches. + List of patches to check against + true if equal + + + Removes one unresolved dependency from the least important patch. + + + Outputs all unblocked patches from the waiting list to results list + + + Adds patch to both results list and handled patches set + Patch to add + + + Wrapper used over the Patch object to allow faster dependency access and + dependency removal in case of cyclic dependencies + + + Create patch wrapper object used for sorting + Patch to wrap + + + Determines how patches sort + The other patch + integer to define sort order (-1, 0, 1) + + + Determines whether patches are equal + The other patch + true if equal + + + Hash function + A hash code + + + Bidirectionally registers Patches as after dependencies + List of dependencies to register + + + Bidirectionally registers Patches as before dependencies + List of dependencies to register + + + Bidirectionally removes Patch from after dependencies + Patch to remove + + + Bidirectionally removes Patch from before dependencies + Patch to remove + + + Specifies the type of method + + + + This is a normal method + + + This is a getter + + + This is a setter + + + This is a constructor + + + This is a static constructor + + + Specifies the type of argument + + + + This is a normal argument + + + This is a reference argument (ref) + + + This is an out argument (out) + + + This is a pointer argument (&) + + + Specifies the type of patch + + + + Any patch + + + A prefix patch + + + A postfix patch + + + A transpiler + + + A finalizer + + + A reverse patch + + + A MonoMod + + + Specifies the type of reverse patch + + + + Use the unmodified original method (directly from IL) + + + Use the original as it is right now including previous patches but excluding future ones + + + Specifies the type of method call dispatching mechanics + + + + Call the method using dynamic dispatching if method is virtual (including overriden) + + + This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#. + This directly corresponds with the instruction. + + + For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called. + For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called. + + + Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually. + A fully dynamic dispatch in C# involves using + the dynamic type + (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support. + + + + + Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static) + + + a.k.a. non-virtual dispatching, early binding, or static binding. + This directly corresponds with the instruction. + + + For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics. + + + + + The base class for all Harmony annotations (not meant to be used directly) + + + + The common information for all attributes + + + Annotation to define your Harmony patch methods + + + + An empty annotation can be used together with TargetMethod(s) + + + + An annotation that specifies a class to patch + The declaring class/type + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The argument types of the method or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + Assembly-qualified name of the declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + Assembly-qualified name of the declaring class/type + The name of the method, property or constructor to patch + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + Annotation to define the original method for delegate injection + + + + An annotation that specifies a class to patch + The declaring class/type + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The argument types of the method or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The + An array of argument types to target overloads + Array of + + + + An annotation that specifies a method, property or constructor to patch + The declaring class/type + The name of the method, property or constructor to patch + The + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + The name of the method, property or constructor to patch + The + + + + An annotation that specifies call dispatching mechanics for the delegate + The + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + The + An array of argument types to target overloads + An array of + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + + + + An annotation that specifies a method, property or constructor to patch + An array of argument types to target overloads + An array of + + + + Annotation to define your standin methods for reverse patching + + + + An annotation that specifies the type of reverse patching + The of the reverse patch + + + + A Harmony annotation to define that all methods in a class are to be patched + + + + A Harmony annotation + + + + A Harmony annotation to define patch priority + The priority + + + + A Harmony annotation + + + + A Harmony annotation to define that a patch comes before another patch + The array of harmony IDs of the other patches + + + + A Harmony annotation + + + A Harmony annotation to define that a patch comes after another patch + The array of harmony IDs of the other patches + + + + A Harmony annotation + + + A Harmony annotation to debug a patch (output uses to log to your Desktop) + + + + A Harmony attribute + + + If specified on a prefix, postfix or a finalizer, the method will be automatically wrapped into try/catch. + + + + Specifies the Prepare function in a patch class + + + + Specifies the Cleanup function in a patch class + + + + Specifies the TargetMethod function in a patch class + + + + Specifies the TargetMethods function in a patch class + + + + Specifies the Prefix function in a patch class + + + + Specifies the Postfix function in a patch class + + + + Specifies the Transpiler function in a patch class + + + + Specifies the ILManipulator function in a patch class> + + + + Specifies the Finalizer function in a patch class + + + + A Harmony annotation + + + + The name of the original argument + + + + The index of the original argument + + + + The new name of the original argument + + + + An annotation to declare injected arguments by name + + + + An annotation to declare injected arguments by index + Zero-based index + + + + An annotation to declare injected arguments by renaming them + Name of the original argument + New name + + + + An annotation to declare injected arguments by index and renaming them + Zero-based index + New name + + + + An abstract wrapper around OpCode and their operands. Used by transpilers + + + + The opcode + + + + The operand + + + + All labels defined on this instruction + + + + All exception block boundaries defined on this instruction + + + + Creates a new CodeInstruction with a given opcode and optional operand + The opcode + The operand + + + + Create a full copy (including labels and exception blocks) of a CodeInstruction + The to copy + + + + Clones a CodeInstruction and resets its labels and exception blocks + A lightweight copy of this code instruction + + + + Clones a CodeInstruction, resets labels and exception blocks and sets its opcode + The opcode + A copy of this CodeInstruction with a new opcode + + + + Clones a CodeInstruction, resets labels and exception blocks and sets its operand + The operand + A copy of this CodeInstruction with a new operand + + + + Creates a CodeInstruction calling a method (CALL) + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A code instruction that calls the method matching the arguments + + + + Creates a CodeInstruction calling a method (CALL) + The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type. + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A code instruction that calls the method matching the arguments + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction calling a method (CALL) + The lambda expression using the method + + + + + Creates a CodeInstruction loading a field (LD[S]FLD[A]) + The class/type where the field is defined + The name of the field (case sensitive) + Use address of field + + + + Creates a CodeInstruction storing to a field (ST[S]FLD) + The class/type where the field is defined + The name of the field (case sensitive) + + + + Returns a string representation of the code instruction + A string representation of the code instruction + + + + Exception block types + + + + The beginning of an exception block + + + + The beginning of a catch block + + + + The beginning of an except filter block + + + + The beginning of a fault block + + + + The beginning of a finally block + + + + The end of an exception block + + + + An exception block + + + + Block type + + + + Catch type + + + + Creates an exception block + The + The catch type + + + + + An exception thrown when a patch argument in a Harmony patch is invalid. + + + + + Original method to be patched. + + + + + Patch that was attempted to be applied. + + + + + + + + Constructs a new exception instance. + + Message of the exception. + Original method to be patched. + Patch that was attempted to be applied. + + + + An exception thrown when a reflection member is not found. + + + + + + + The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain + + + + Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe" + This is for full debugging. To debug only specific patches, use the attribute + + + + Creates a new Harmony instance + A unique identifier (you choose your own) + A Harmony instance + + + + The unique identifier + + + + Searches the current assembly for Harmony annotations and uses them to create patches + This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly()) instead. + + + + Creates a empty patch processor for an original method + The original method/constructor + A new instance + + + + Creates a patch class processor from an annotated class + The class/type + A new instance + + + + Creates a patch class processor from an annotated class + The class/type + If true, the type doesn't need to have any attributes present for processing + A new instance + + + + Creates a reverse patcher for one of your stub methods + The original method/constructor + The stand-in stub method as + A new instance + + + + Searches an assembly for Harmony annotations and uses them to create patches + The assembly + + + + Searches the given type for Harmony annotation and uses them to create patches + The type to search + + + + Creates patches by manually specifying the methods + The original method/constructor + An optional prefix method wrapped in a object + An optional postfix method wrapped in a object + An optional transpiler method wrapped in a object + An optional finalizer method wrapped in a object + An optional ilmanipulator method wrapped in a + The replacement method that was created to patch the original method + + + + Creates patches by manually specifying the methods + The original method/constructor + An optional prefix method wrapped in a object + An optional postfix method wrapped in a object + An optional transpiler method wrapped in a object + An optional finalizer method wrapped in a object + The replacement method that was created to patch the original method + + + + Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process + The original method/constructor you want to duplicate + Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates) + An optional transpiler as method that will be applied during the process + An optional ilmanipulator as method that will be applied during the process + The replacement method that was created to patch the stub method + + + + Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process + The original method/constructor you want to duplicate + Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates) + An optional transpiler as method that will be applied during the process + The replacement method that was created to patch the stub method + + + + Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The optional Harmony ID to restrict unpatching to a specific Harmony instance + This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID + + + + Unpatches all methods that were patched by this Harmony instance's ID. Unpatching is done by repatching methods without patches of this instance. + + + + Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The original method/constructor + The + The optional Harmony ID to restrict unpatching to a specific Harmony instance + + + + Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global + The original method/constructor + The patch method as method to remove + + + + Test for patches from a specific Harmony ID + The Harmony ID + True if patches for this ID exist + + + + Gets patch information for a given original method + The original method/constructor + The patch information as + + + + Gets the methods this instance has patched + An enumeration of original methods/constructors + + + + Gets all patched original methods in the appdomain + An enumeration of patched original methods/constructors + + + + Gets the original method from a given replacement method + A replacement method, for example from a stacktrace + The original method/constructor or null if not found + + + + Tries to get the method from a stackframe including dynamic replacement methods + The + For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found + + + + Gets Harmony version for all active Harmony instances + [out] The current Harmony version + A dictionary containing assembly versions keyed by Harmony IDs + + + + Creates a new Harmony instance and applies all patches specified in the type + The type to scan for patches. + The ID for the Harmony instance to create, which will be used. + + + + Applies all patches specified in the assembly + The assembly to scan. + The ID for the Harmony instance to create, which will be used. + + + + Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure + + + + Default serialization constructor (not implemented) + The info + The context + + + + Get a list of IL instructions in pairs of offset+code + A list of key/value pairs which represent an offset and the code at that offset + + + + Get a list of IL instructions without offsets + A list of + + + + Get the error offset of the errornous IL instruction + The offset + + + + Get the index of the errornous IL instruction + The index into the list of instructions or -1 if not found + + + + A wrapper around a method to use it as a patch (for example a Prefix) + + + + The original method + + + + Class/type declaring this patch + + + + Patch method name + + + + Optional patch + + + + Array of argument types of the patch method + + + + of the patch + + + + Install this patch before patches with these Harmony IDs + + + + Install this patch after patches with these Harmony IDs + + + + Reverse patch type, see + + + + Create debug output for this patch + + + + Whether to use (true) or (false) mechanics + for -attributed delegate + + + + Whether to wrap the patch itself into a try/catch. + + + + Default constructor + + + + Creates a patch from a given method + The original method + + + + Creates a patch from a given method + The original method + The patch + A list of harmony IDs that should come after this patch + A list of harmony IDs that should come before this patch + Set to true to generate debug output + + + + Creates a patch from a given method + The patch class/type + The patch method name + The optional argument types of the patch method (for overloaded methods) + + + + Gets the names of all internal patch info fields + A list of field names + + + + Merges annotations + The list of to merge + The merged + + + + Returns a string that represents the annotation + A string representation + + + + Annotation extensions + + + + Copies annotation information + The source + The destination + + + + Clones an annotation + The to clone + A copied + + + + Merges annotations + The master + The detail + A new, merged + + + + Gets all annotations on a class/type + The class/type + A list of all + + + + Gets merged annotations on a class/type + The class/type + The merged + + + + Gets all annotations on a method + The method/constructor + A list of + + + + Gets merged annotations on a method + The method/constructor + The merged + + + + + A mutable representation of an inline signature, similar to Mono.Cecil's CallSite. + Used by the calli instruction, can be used by transpilers + + + + + See + + + + See + + + + See + + + + The list of all parameter types or function pointer signatures received by the call site + + + + The return type or function pointer signature returned by the call site + + + + Returns a string representation of the inline signature + A string representation of the inline signature + + + + + A mutable representation of a parameter type with an attached type modifier, + similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq + + + + + Whether this is a modopt (optional modifier type) or a modreq (required modifier type) + + + + The modifier type attached to the parameter type + + + + The modified parameter type + + + + Returns a string representation of the modifier type + A string representation of the modifier type + + + + Patch serialization + + + + Control the binding of a serialized object to a type + Specifies the assembly name of the serialized object + Specifies the type name of the serialized object + The type of the object the formatter creates a new instance of + + + + Serializes a patch info + The + The serialized data + + + + Deserialize a patch info + The serialized data + A + + + + Compare function to sort patch priorities + The patch + Zero-based index + The priority + A standard sort integer (-1, 0, 1) + + + + Serializable patch information + + + + Prefixes as an array of + + + + Postfixes as an array of + + + + Transpilers as an array of + + + + Finalizers as an array of + + + + ILManipulators as an array of + + + + Returns if any of the patches wants debugging turned on + + + + Adds prefixes + An owner (Harmony ID) + The patch methods + + + + Adds a prefix + + + Removes prefixes + The owner of the prefixes, or * for all + + + + Adds postfixes + An owner (Harmony ID) + The patch methods + + + + Adds a postfix + + + Removes postfixes + The owner of the postfixes, or * for all + + + + Adds transpilers + An owner (Harmony ID) + The patch methods + + + + Adds a transpiler + + + Removes transpilers + The owner of the transpilers, or * for all + + + + Adds finalizers + An owner (Harmony ID) + The patch methods + + + + Adds a finalizer + + + Removes finalizers + The owner of the finalizers, or * for all + + + + Adds ilmanipulators + An owner (Harmony ID) + The patch methods + + + + Removes ilmanipulators + The owner of the ilmanipulators, or * for all + + + + Removes a patch using its method + The method of the patch to remove + + + + Gets a concatenated list of patches + The Harmony instance ID adding the new patches + The patches to add + The current patches + + + + Gets a list of patches with any from the given owner removed + The owner of the methods, or * for all + The current patches + + + + A serializable patch + + + + Zero-based index + + + + The owner (Harmony ID) + + + + The priority, see + + + + Keep this patch before the patches indicated in the list of Harmony IDs + + + + Keep this patch after the patches indicated in the list of Harmony IDs + + + + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + + + + Whether to wrap the patch into a general try/catch that logs the error + + + + The method of the static patch method + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + The priority, see + A list of Harmony IDs for patches that should run after this patch + A list of Harmony IDs for patches that should run before this patch + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + The priority, see + A list of Harmony IDs for patches that should run after this patch + A list of Harmony IDs for patches that should run before this patch + A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future + Whether to wrap the patch into a general try/catch that logs the error + + + + Creates a patch + The method of the patch + Zero-based index + An owner (Harmony ID) + + + Get the patch method or a DynamicMethod if original patch method is a patch factory + The original method/constructor + The method of the patch + + + + Determines whether patches are equal + The other patch + true if equal + + + + Determines how patches sort + The other patch + integer to define sort order (-1, 0, 1) + + + + Hash function + A hash code + + + + A PatchClassProcessor used to turn on a class/type into patches + + + + Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes. + The Harmony instance + The class to process (need to have at least a [HarmonyPatch] attribute if allowUnannotatedType is set to false) + + + + Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes. + The Harmony instance + The class to process (need to have at least a [HarmonyPatch] attribute if allowUnannotatedType is set to false) + If true, the type doesn't need to have any attributes present for processing + + + + Applies the patches + A list of all created replacement methods or null if patch class is not annotated + + + + A group of patches + + + + A collection of prefix + + + + A collection of postfix + + + + A collection of transpiler + + + + A collection of finalizer + + + + A collection of ILManipulator + + + + Gets all owners (Harmony IDs) or all known patches + The patch owners + + + + Creates a group of patches + An array of prefixes as + An array of postfixes as + An array of transpileres as + An array of finalizeres as + An array of ilmanipulators as + + + + Creates a group of patches + An array of prefixes as + An array of postfixes as + An array of transpileres as + An array of finalizeres as + + + + + IL manipulator to create Harmony-style patches + + + + + + Manipulates a by applying Harmony patches to it. + + Reference to the method that should be considered as original. Used to reference parameter and return types. + Collection of Harmony patches to apply. + Method body to manipulate as instance. Should contain instructions to patch. + + In most cases you will want to use to create or obtain global + patch info for the method that contains aggregated info of all Harmony instances. + + + + + + Method patcher for normal managed methods that have IL body attached to them. + Uses in order to apply hooks in a way compatible with MonoMod's own + hooking system. + + + + + + + + + + + + + + + + + + A handler for that checks if a method is a normal Managed method. + + Not used + Patch resolver arguments + + + + + A general method patcher for implementing custom Harmony patcher backends. + + + + + + Constructs a method patcher + + Original method to patch + + + + + Original method to patch. + + + + + + Prepares method body for the unpatched that simply calls + function. + + + A that contains a call to + the original method to pass to the IL manipulator. + If null, Harmony patches must be manually applied to the original via . + + + + + + Detours to the provided replacement function. If called multiple times, + is re-detoured to the new method. + + + Result of + if returned non-null. + Otherwise, this will be null, in which case you must manually generate Harmony-patched method + with . + + of the hook, if it's different from `replacement`. + + + + + Creates a copy of the original method. If not possible, creates a method that calls into the original method. + + Copy of the original method that is transpileable. If not possible, returns null. + + This method creates a pure copy of the original method that is usable with transpilers. Currently, this + method is used to generate reverse patchers. + If a purse IL copy is not possible, a best approximation should be generated + (e.g. a wrapper that calls original method). + If no best approximation is possible, this method should return null, in which case generating reverse + patchers for the method will fail. + + + + + + A method patcher that uses to patch internal calls, + methods marked with and any other managed method that CLR managed-to-native + trampolines for and which has no IL body defined. + + + + + Constructs a new instance of method patcher. + + + + + + + + + + + + + + + A handler for that checks if a method doesn't have a body + (e.g. it's icall or marked with ) and thus can be patched with + . + + Not used + Patch resolver arguments + + + + + A global manager for handling Harmony patch state. Contains information about all patched methods and all + actual instances that handle patching implementation. + + + + + + Method patcher resolve event. + + + When a method is to be patched, this resolver event is called once on the method to determine which + backend to use in order to patch the method. + To make Harmony use the specified backend, set to an + instance of the method patcher backend to use. + + + + + + Creates or gets an existing instance of that handles patching the method. + + Method to patch. + Instance of that handles patching the method. + No suitable patcher found for the method. + + + + + Gets patch info for the given target method. + + Method to get patch info for. + Current patch info of the method. + + + + + Gets or creates patch info for the given method. + + Method to get info from. + An existing or new patch info for the method containing information about the applied patches. + + + + + Gets all methods that have been patched. + + List of methods that have been patched. + + + + + Removes all method resolvers. Use with care, this removes the default ones too! + + + + + Patcher resolve event arguments. + + + + + + Original method that is to be patched. + + + + + + Method patcher to use to patch . + Set this value to specify which one to use. + + + + + A PatchProcessor handles patches on a method/constructor + + + + Creates an empty patch processor + The Harmony instance + The original method/constructor + + + + Adds a prefix + The prefix as a + A for chaining calls + + + + Adds a prefix + The prefix method + A for chaining calls + + + + Adds a postfix + The postfix as a + A for chaining calls + + + + Adds a postfix + The postfix method + A for chaining calls + + + + Adds a transpiler + The transpiler as a + A for chaining calls + + + + Adds a transpiler + The transpiler method + A for chaining calls + + + + Adds a finalizer + The finalizer as a + A for chaining calls + + + + Adds a finalizer + The finalizer method + A for chaining calls + + + + Adds an ilmanipulator + The ilmanipulator as a + A for chaining calls + + + + Adds an ilmanipulator + The ilmanipulator method + A for chaining calls + + + + Gets all patched original methods in the appdomain + An enumeration of patched method/constructor + + + + Applies all registered patches + The generated replacement method + + + + Unpatches patches of a given type and/or Harmony ID + The patch type + Harmony ID or * for any + A for chaining calls + + + + Unpatches a specific patch + The method of the patch + A for chaining calls + + + + Gets patch information on an original + The original method/constructor + The patch information as + + + + Sort patch methods by their priority rules + The original method + Patches to sort + The sorted patch methods + + + + Gets Harmony version for all active Harmony instances + [out] The current Harmony version + A dictionary containing assembly version keyed by Harmony ID + + + + Creates a new empty generator to use when reading method bodies + A new + + + + Creates a new generator matching the method/constructor to use when reading method bodies + The original method/constructor to copy method information from + A new + + + + Returns the methods unmodified list of code instructions + The original method/constructor + Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) + A list containing all the original + + + + Returns the methods unmodified list of code instructions + The original method/constructor + A new generator that now contains all local variables and labels contained in the result + A list containing all the original + + + + Returns the methods current list of code instructions after all existing transpilers have been applied + The original method/constructor + Apply only the first count of transpilers + Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) + A list of + + + + Returns the methods current list of code instructions after all existing transpilers have been applied + The original method/constructor + A new generator that now contains all local variables and labels contained in the result + Apply only the first count of transpilers + A list of + + + + A low level way to read the body of a method. Used for quick searching in methods + The original method + All instructions as opcode/operand pairs + + + + A low level way to read the body of a method. Used for quick searching in methods + The original method + An existing generator that will be used to create all local variables and labels contained in the result + All instructions as opcode/operand pairs + + + + A patch priority + + + + Patch last + + + + Patch with very low priority + + + + Patch with low priority + + + + Patch with lower than normal priority + + + + Patch with normal priority + + + + Patch with higher than normal priority + + + + Patch with high priority + + + + Patch with very high priority + + + + Patch first + + + + A reverse patcher + + + + Creates a reverse patcher + The Harmony instance + The original method/constructor + Your stand-in stub method as + + + + Applies the patch + The type of patch, see + The generated replacement method + + + + A collection of commonly used transpilers + + + + Returns an instruction to call the specified delegate + The delegate type to emit + The delegate to emit + The instruction to call the specified action + + + + A transpiler that replaces all occurrences of a given method with another one using the same signature + The enumeration of to act on + Method or constructor to search for + Method or constructor to replace with + Modified enumeration of + + + + A transpiler that alters instructions that match a predicate by calling an action + The enumeration of to act on + A predicate selecting the instructions to change + An action to apply to matching instructions + Modified enumeration of + + + + A transpiler that logs a text at the beginning of the method + The instructions to act on + The log text + Modified enumeration of + + + + A transpiler that replaces the entire body of the method with another one + The replacement method. It's up to the caller of this transpiler to make sure that the signatures match. + of the patch. This is passed via transpiler. + A collection of that contains instructions of replacement method. + The replacement method is not a managed method that contains any IL. + This transpiler has a side effect of clearing up all previous locals and previous transpilers. + Use to run this transpiler as early as possible. + + + A helper class for reflection related functions + + + + Shortcut for to simplify the use of reflections and make it work for any access level + + + + Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type + + + + Enumerates all assemblies in the current app domain, excluding visual studio assemblies + An enumeration of + + + Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise + The name + A type or null if not found + + + + Gets all successfully loaded types from a given assembly + The assembly + An array of types + + This calls and returns , while catching any thrown . + If such an exception is thrown, returns the successfully loaded types (, + filtered for non-null values). + + + + + Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies + An enumeration of all in all assemblies, excluding visual studio assemblies + + + Applies a function going up the type hierarchy and stops at the first non-null result + Result type of func() + The class/type to start with + The evaluation function returning T + The first non-null result, or null if no match + + The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces, + and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces). + The top-most type in the type hierarchy of all non-interface types (including value types) is . + + + + + Applies a function going into inner types and stops at the first non-null result + Generic type parameter + The class/type to start with + The evaluation function returning T + The first non-null result, or null if no match + + + + Gets the reflection information for a directly declared field + The class/type where the field is defined + The name of the field + A field or null when type/name is null or when the field cannot be found + + + + Gets the reflection information for a field by searching the type and all its super types + The class/type where the field is defined + The name of the field (case sensitive) + A field or null when type/name is null or when the field cannot be found + + + + Gets the reflection information for a field + The class/type where the field is declared + The zero-based index of the field inside the class definition + A field or null when type is null or when the field cannot be found + + + + Gets the reflection information for a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A property or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the getter method of a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the setter method of a directly declared property + The class/type where the property is declared + The name of the property (case sensitive) + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for a property by searching the type and all its super types + The class/type + The name + A property or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the getter method of a property by searching the type and all its super types + The class/type + The name + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for the setter method of a property by searching the type and all its super types + The class/type + The name + A method or null when type/name is null or when the property cannot be found + + + + Gets the reflection information for a directly declared method + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the reflection information for a method by searching the type and all its super types + The class/type where the method is declared + The name of the method (case sensitive) + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the reflection information for a method by searching the type and all its super types + The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type. + Optional parameters to target a specific overload of the method + Optional list of types that define the generic version of the method + A method or null when type/name is null or when the method cannot be found + + + + Gets the names of all method that are declared in a type + The declaring class/type + A list of method names + + + + Gets the names of all method that are declared in the type of the instance + An instance of the type to search in + A list of method names + + + + Gets the names of all fields that are declared in a type + The declaring class/type + A list of field names + + + + Gets the names of all fields that are declared in the type of the instance + An instance of the type to search in + A list of field names + + + + Gets the names of all properties that are declared in a type + The declaring class/type + A list of property names + + + + Gets the names of all properties that are declared in the type of the instance + An instance of the type to search in + A list of property names + + + + Gets the type of any class member of + A member + The class/type of this member + + + + Test if a class member is actually an concrete implementation + A member + True if the member is a declared + + + + Gets the real implementation of a class member + A member + The member itself if its declared. Otherwise the member that is actually implemented in some base type + + + + Gets the reflection information for a directly declared constructor + The class/type where the constructor is declared + Optional parameters to target a specific overload of the constructor + Optional parameters to only consider static constructors + A constructor info or null when type is null or when the constructor cannot be found + + + + Gets the reflection information for a constructor by searching the type and all its super types + The class/type where the constructor is declared + Optional parameters to target a specific overload of the method + Optional parameters to only consider static constructors + A constructor info or null when type is null or when the method cannot be found + + + + Gets reflection information for all declared constructors + The class/type where the constructors are declared + Optional parameters to only consider static constructors + A list of constructor infos + + + + Gets reflection information for all declared methods + The class/type where the methods are declared + A list of methods + + + + Gets reflection information for all declared properties + The class/type where the properties are declared + A list of properties + + + + Gets reflection information for all declared fields + The class/type where the fields are declared + A list of fields + + + + Gets the return type of a method or constructor + The method/constructor + The return type + + + + Given a type, returns the first inner type matching a recursive search by name + The class/type to start searching at + The name of the inner type (case sensitive) + The inner type or null if type/name is null or if a type with that name cannot be found + + + + Given a type, returns the first inner type matching a recursive search with a predicate + The class/type to start searching at + The predicate to search with + The inner type or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first method matching a predicate + The class/type to start searching at + The predicate to search with + The method or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first constructor matching a predicate + The class/type to start searching at + The predicate to search with + The constructor info or null if type/predicate is null or if a type with that name cannot be found + + + + Given a type, returns the first property matching a predicate + The class/type to start searching at + The predicate to search with + The property or null if type/predicate is null or if a type with that name cannot be found + + + + Returns an array containing the type of each object in the given array + An array of objects + An array of types or an empty array if parameters is null (if an object is null, the type for it will be object) + + + + Creates an array of input parameters for a given method and a given set of potential inputs + The method/constructor you are planing to call + The possible input parameters in any order + An object array matching the method signature + + + + A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct) + + An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), + implemented interface, or derived class of this type + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The runtime instance to access the field (ignored and can be omitted for static fields) + A readable/assignable reference to the field + Null instance passed to a non-static field ref delegate + + Instance of invalid type passed to a non-static field ref delegate + (this can happen if is a parent class or interface of the field's declaring type) + + + + This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by + value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference, + but makes assignment futile. Use instead. + + + Note that is not required to be the field's declaring type. It can be a parent class (including ), + implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible). + Specifically, must be assignable from OR to the field's declaring type. + Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs + are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters. + + + Similarly, is not required to be the field's field type, unless that type is a non-enum value type. + It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class. + This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values. + Special case for enum types: can also be the underlying integral type of the enum type. + Specifically, for reference types, must be assignable from + the field's field type; for non-enum value types, must be exactly the field's field type; for enum types, + must be either the field's field type or the underyling integral type of that field type. + + + This delegate supports static fields, even those defined in structs, for legacy reasons. + For such static fields, is effectively ignored. + Consider using (and StaticFieldRefAccess methods that return it) instead for static fields. + + + + + + Creates a field reference delegate for an instance field of a class + The class that defines the instance field, or derived class of this type + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable delegate + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates an instance field reference for a specific instance of a class + The class that defines the instance field, or derived class of this type + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The name of the field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance. + If you need to access a field's value for potentially multiple instances, use instead. + FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance). + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + + The type that defines the field, or derived class of this type; must not be a struct type unless the field is static + + The name of the field + + A readable/assignable delegate with T=object + (for static fields, the instance delegate parameter is ignored) + + + + This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T + in e.g. . + + + This method supports static fields, even those defined in structs, for legacy reasons. + Consider using (and other overloads) instead for static fields. + + + + + + Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) + + An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), + implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible) + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + This method is meant for cases where the field has already been obtained, avoiding the field searching cost in + e.g. . + + + This method supports static fields, even those defined in structs, for legacy reasons. + For such static fields, is effectively ignored. + Consider using (and other overloads) instead for static fields. + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + Creates a field reference for an instance field of a class + + The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type + ("instanceOfT is FieldDeclaringType" must be possible) + + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. + If you need to access a field's value for potentially multiple instances, use instead. + FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance). + + + For backwards compatibility, there is no class constraint on . + Instead, the non-value-type check is done at runtime within the method. + + + + + + A readable/assignable reference delegate to an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + A reference to the runtime instance to access the field + A readable/assignable reference to the field + + + + Creates a field reference delegate for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable delegate + + + + Creates an instance field reference for a specific instance of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The name of the field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance. + If you need to access a field's value for potentially multiple instances, use instead. + StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance). + + + + + + Creates a field reference delegate for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + This method is meant for cases where the field has already been obtained, avoiding the field searching cost in + e.g. . + + + + + + Creates a field reference for an instance field of a struct + The struct that defines the instance field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The instance + The field + A readable/assignable reference to the field + + + This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. + If you need to access a field's value for potentially multiple instances, use instead. + StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance). + + + + + + A readable/assignable reference delegate to a static field + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + A readable/assignable reference to the field + + + + Creates a static field reference + The type (can be class or struct) the field is defined in + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The name of the field + A readable/assignable reference to the field + + + + Creates a static field reference + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The type (can be class or struct) the field is defined in + The name of the field + A readable/assignable reference to the field + + + + Creates a static field reference + An arbitrary type (by convention, the type the field is defined in) + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable reference to the field + + The type parameter is only used in exception messaging and to distinguish between this method overload + and the overload (which returns a rather than a reference). + + + + + Creates a static field reference delegate + + The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), + a type that is assignable from that type; or if the field's type is an enum type, + either that type or the underlying integral type of that enum type + + The field + A readable/assignable delegate + + + + Creates a delegate to a given method + The delegate Type + The method to create a delegate from. + + Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate + where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) + instance delegate where the delegate invocation always applies to the given . + + + Only applies for instance methods. If true (default) and is virtual, invocation of the delegate + calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called); + else, invocation of the delegate calls the exact specified (this is useful for calling base class methods) + Note: if false and is an interface method, an ArgumentException is thrown. + + A delegate of given to given + + + Delegate invocation is more performant and more convenient to use than + at a one-time setup cost. + + + Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods, + and both class and struct methods. + + + + + + Creates a delegate for a given delegate definition, attributed with [] + The delegate Type, attributed with [] + + Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate + where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) + instance delegate where the delegate invocation always applies to the given . + + A delegate of given to the method specified via [] + attributes on + + This calls with the method and virtualCall arguments + determined from the [] attributes on , + and the given (for closed instance delegates). + + + + + Returns who called the current method + The calling method/constructor (excluding the caller) + + + + Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces) + The exception to rethrow + + + + True if the current runtime is based on Mono, false otherwise (.NET) + + + + True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed) + + + + True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework) + + + + Throws a missing member runtime exception + The type that is involved + A list of names + + + + Gets default value for a specific type + The class/type + The default value + + + + Creates an (possibly uninitialized) instance of a given type + The class/type + The new instance + + + + Creates an (possibly uninitialized) instance of a given type + The class/type + The new instance + + + + + A cache for the or similar Add methods for different types. + + + + Makes a deep copy of any object + The type of the instance that should be created; for legacy reasons, this must be a class or interface + The original object + A copy of the original object but of type T + + + + Makes a deep copy of any object + The type of the instance that should be created + The original object + [out] The copy of the original object + Optional value transformation function (taking a field name and src/dst instances) + The optional path root to start with + + + + Makes a deep copy of any object + The original object + The type of the instance that should be created + Optional value transformation function (taking a field name and src/dst instances) + The optional path root to start with + The copy of the original object + + + + Tests if a type is a struct + The type + True if the type is a struct + + + + Tests if a type is a class + The type + True if the type is a class + + + + Tests if a type is a value type + The type + True if the type is a value type + + + + Tests if a type is an integer type + The type + True if the type represents some integer + + + + Tests if a type is a floating point type + The type + True if the type represents some floating point + + + + Tests if a type is a numerical type + The type + True if the type represents some number + + + + Tests if a type is void + The type + True if the type is void + + + + Test whether an instance is of a nullable type + Type of instance + An instance to test + True if instance is of nullable type, false if not + + + + Tests whether a type or member is static, as defined in C# + The type or member + True if the type or member is static + + + + Tests whether a type is static, as defined in C# + The type + True if the type is static + + + + Tests whether a property is static, as defined in C# + The property + True if the property is static + + + + Tests whether an event is static, as defined in C# + The event + True if the event is static + + + + Calculates a combined hash code for an enumeration of objects + The objects + The hash code + + + + A CodeInstruction match + + + The name of the match + + + The matched opcodes + + + The matched operands + + + The matched labels + + + The matched blocks + + + The jumps from the match + + + The jumps to the match + + + The match predicate + + + Creates a code match + The optional opcode + The optional operand + The optional name + + + + Creates a code match + The CodeInstruction + An optional name + + + + Creates a code match + The predicate + An optional name + + + + Returns a string that represents the match + A string representation + + + + A CodeInstruction matcher + + + The current position + The index or -1 if out of bounds + + + + Gets the number of code instructions in this matcher + The count + + + + Checks whether the position of this CodeMatcher is within bounds + True if this CodeMatcher is valid + + + + Checks whether the position of this CodeMatcher is outside its bounds + True if this CodeMatcher is invalid + + + + Gets the remaining code instructions + The remaining count + + + + Gets the opcode at the current position + The opcode + + + + Gets the operand at the current position + The operand + + + + Gets the labels at the current position + The labels + + + + Gets the exception blocks at the current position + The blocks + + + + Creates an empty code matcher + + + Creates a code matcher from an enumeration of instructions + The instructions (transpiler argument) + An optional IL generator + + + + Makes a clone of this instruction matcher + A copy of this matcher + + + + Gets instructions at the current position + The instruction + + + + Gets instructions at the current position with offset + The offset + The instruction + + + + Gets all instructions + A list of instructions + + + + Gets all instructions as an enumeration + A list of instructions + + + + Gets some instructions counting from current position + Number of instructions + A list of instructions + + + + Gets all instructions within a range + The start index + The end index + A list of instructions + + + + Gets all instructions within a range (relative to current position) + The start offset + The end offset + A list of instructions + + + + Gets a list of all distinct labels + The instructions (transpiler argument) + A list of Labels + + + + Reports a failure + The method involved + The logger + True if current position is invalid and error was logged + + + + Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed) + Explanation of where/why the exception was thrown that will be added to the exception message + The same code matcher + + + + Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), + or if the matches do not match at current position + Explanation of where/why the exception was thrown that will be added to the exception message + Some code matches + The same code matcher + + + + Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), + or if the matches do not match at any point between current position and the end + Explanation of where/why the exception was thrown that will be added to the exception message + Some code matches + The same code matcher + + + + Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), + or if the matches do not match at any point between current position and the start + Explanation of where/why the exception was thrown that will be added to the exception message + Some code matches + The same code matcher + + + + Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), + or if the check function returns false + Explanation of where/why the exception was thrown that will be added to the exception message + Function that checks validity of current state. If it returns false, an exception is thrown + The same code matcher + + + + Sets an instruction at current position + The instruction to set + The same code matcher + + + + Sets instruction at current position and advances + The instruction + The same code matcher + + + + Sets opcode and operand at current position + The opcode + The operand + The same code matcher + + + + Sets opcode and operand at current position and advances + The opcode + The operand + The same code matcher + + + + Sets opcode at current position and advances + The opcode + The same code matcher + + + + Sets operand at current position and advances + The operand + The same code matcher + + + + Creates a label at current position + [out] The label + The same code matcher + + + + Creates a label at a position + The position + [out] The new label + The same code matcher + + + + Adds an enumeration of labels to current position + The labels + The same code matcher + + + + Adds an enumeration of labels at a position + The position + The labels + The same code matcher + + + + Sets jump to + Branch instruction + Destination for the jump + [out] The created label + The same code matcher + + + + Inserts some instructions + The instructions + The same code matcher + + + + Inserts an enumeration of instructions + The instructions + The same code matcher + + + + Inserts a branch + The branch opcode + Branch destination + The same code matcher + + + + Inserts some instructions and advances the position + The instructions + The same code matcher + + + + Inserts an enumeration of instructions and advances the position + The instructions + The same code matcher + + + + Inserts a branch and advances the position + The branch opcode + Branch destination + The same code matcher + + + + Removes current instruction + The same code matcher + + + + Removes some instruction fro current position by count + Number of instructions + The same code matcher + + + + Removes the instructions in a range + The start + The end + The same code matcher + + + + Removes the instructions in a offset range + The start offset + The end offset + The same code matcher + + + + Advances the current position + The offset + The same code matcher + + + + Moves the current position to the start + The same code matcher + + + + Moves the current position to the end + The same code matcher + + + + Searches forward with a predicate and advances position + The predicate + The same code matcher + + + + Searches backwards with a predicate and reverses position + The predicate + The same code matcher + + + + Matches forward and advances position + True to set position to end of match, false to set it to the beginning of the match + Some code matches + The same code matcher + + + + Matches backwards and reverses position + True to set position to end of match, false to set it to the beginning of the match + Some code matches + The same code matcher + + + + Repeats a match action until boundaries are met + The match action + An optional action that is executed when no match is found + The same code matcher + + + + Gets a match by its name + The match name + An instruction + + + + General extensions for common cases + + + + Joins an enumeration with a value converter and a delimiter to a string + The inner type of the enumeration + The enumeration + An optional value converter (from T to string) + An optional delimiter + The values joined into a string + + + + Converts an array of types (for example methods arguments) into a human readable form + The array of types + A human readable description including brackets + + + + A full description of a type + The type + A human readable description + + + + A a full description of a method or a constructor without assembly details but with generics + The method/constructor + A human readable description + + + + A helper converting parameter infos to types + The array of parameter infos + An array of types + + + + A helper to access a value via key from a dictionary + The key type + The value type + The dictionary + The key + The value for the key or the default value (of T) if that key does not exist + + + + A helper to access a value via key from a dictionary with extra casting + The value type + The dictionary + The key + The value for the key or the default value (of T) if that key does not exist or cannot be cast to T + + + + Escapes Unicode and ASCII non printable characters + The string to convert + The string to convert + A string literal surrounded by + + + + Extensions for + + + + Shortcut for testing whether the operand is equal to a non-null value + The + The value + True if the operand has the same type and is equal to the value + + + + Shortcut for testing whether the operand is equal to a non-null value + The + The value + True if the operand is equal to the value + This is an optimized version of for + + + + Shortcut for code.opcode == opcode && code.OperandIs(operand) + The + The + The operand value + True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand + + + + Shortcut for code.opcode == opcode && code.OperandIs(operand) + The + The + The operand value + True if the opcode is equal to the given opcode and the operand is equal to the given operand + This is an optimized version of for + + + + Tests for any form of Ldarg* + The + The (optional) index + True if it matches one of the variations + + + + Tests for Ldarga/Ldarga_S + The + The (optional) index + True if it matches one of the variations + + + + Tests for Starg/Starg_S + The + The (optional) index + True if it matches one of the variations + + + + Tests for any form of Ldloc* + The + The optional local variable + True if it matches one of the variations + + + + Tests for any form of Stloc* + The + The optional local variable + True if it matches one of the variations + + + + Tests if the code instruction branches + The + The label if the instruction is a branch operation or if not + True if the instruction branches + + + + Tests if the code instruction calls the method/constructor + The + The method + True if the instruction calls the method or constructor + + + + Tests if the code instruction loads a constant + The + True if the instruction loads a constant + + + + Tests if the code instruction loads an integer constant + The + The integer constant + True if the instruction loads the constant + + + + Tests if the code instruction loads a floating point constant + The + The floating point constant + True if the instruction loads the constant + + + + Tests if the code instruction loads an enum constant + The + The enum + True if the instruction loads the constant + + + + Tests if the code instruction loads a field + The + The field + Set to true if the address of the field is loaded + True if the instruction loads the field + + + + Tests if the code instruction stores a field + The + The field + True if the instruction stores this field + + + + Adds labels to the code instruction and return it + The + One or several to add + The same code instruction + + + Adds labels to the code instruction and return it + The + An enumeration of + The same code instruction + + + Extracts all labels from the code instruction and returns them + The + A list of + + + Moves all labels from the code instruction to a different one + The to move the labels from + The to move the labels to + The code instruction labels were moved from (now empty) + + + Moves all labels from a different code instruction to the current one + The to move the labels from + The to move the labels to + The code instruction that received the labels + + + Adds ExceptionBlocks to the code instruction and return it + The + One or several to add + The same code instruction + + + Adds ExceptionBlocks to the code instruction and return it + The + An enumeration of + The same code instruction + + + Extracts all ExceptionBlocks from the code instruction and returns them + The + A list of + + + Moves all ExceptionBlocks from the code instruction to a different one + The to move the ExceptionBlocks from + The to move the ExceptionBlocks to + The code instruction blocks were moved from (now empty) + + + Moves all ExceptionBlocks from a different code instruction to the current one + The to move the ExceptionBlocks from + The to move the ExceptionBlocks to + The code instruction that received the blocks + + + General extensions for collections + + + + A simple way to execute code for every element in a collection + The inner type of the collection + The collection + The action to execute + + + + A simple way to execute code for elements in a collection matching a condition + The inner type of the collection + The collection + The predicate + The action to execute + + + + A helper to add an item to a collection + The inner type of the collection + The collection + The item to add + The collection containing the item + + + + A helper to add an item to an array + The inner type of the collection + The array + The item to add + The array containing the item + + + + A helper to add items to an array + The inner type of the collection + The array + The items to add + The array containing the items + + + + General extensions for collections + + + + Tests a class member if it has an IL method body (external methods for example don't have a body) + The member to test + Returns true if the member has an IL body or false if not + + + A file log for debugging + + + + Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop + + + + The indent character. The default is tab + + + + The current indent level + + + + Changes the indentation level + The value to add to the indentation level + + + + Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called + or else logging information is incomplete in case of a crash + The string to log + + + + Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called + or else logging information is incomplete in case of a crash + A list of strings to log (they will not be re-indented) + + + + Returns the log buffer and optionally empties it + True to empty the buffer + The buffer. + + + + Replaces the buffer with new lines + The lines to store + + + + Flushes the log buffer to disk (use in combination with LogBuffered) + + + + Log a string directly to disk. Slower method that prevents missing information in case of a crash + The string to log. + + + + Resets and deletes the log + + + + Logs some bytes as hex values + The pointer to some memory + The length of bytes to log + + + + + Default Harmony logger that writes to a file + + + + + Whether or not to enable writing the log. + + + + + Text writer to write the logs to. If not set, defaults to a file log. + + + + + File path of the log. + + + + + Main logger class that exposes log events. + + + + + A single log event that represents a single log message. + + + + + Log channel of the message. + + + + + The log message. + + + + + Log channel for the messages. + + + + + No channels (or an empty channel). + + + + + Basic information. + + + + + Full IL dumps of the generated dynamic methods. + + + + + Channel for warnings. + + + + + Channel for errors. + + + + + Additional debug information that is related to patching + + + + + All channels. + + + + + Filter for which channels should be listened to. + If the channel is in the filter, all log messages from that channel get propagated into event. + + + + + Event fired on any incoming message that passes the channel filter. + + + + + Pretty print a full type name. + + The . + The pretty printed full type name. + + + + A helper class to retrieve reflection info for non-private methods + + + + Given a lambda expression that calls a method, returns the method info + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The generic type + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The generic type + The generic result type + The lambda expression using the method + The method in the lambda expression + + + + Given a lambda expression that calls a method, returns the method info + The lambda expression using the method + The method in the lambda expression + + + + A reflection helper to read and write private elements + The result type defined by GetValue() + + + + Creates a traverse instance from an existing instance + The existing instance + + + + Gets/Sets the current value + The value to read or write + + + + A reflection helper to read and write private elements + + + + Creates a new traverse instance from a class/type + The class/type + A instance + + + + Creates a new traverse instance from a class T + The class + A instance + + + + Creates a new traverse instance from an instance + The object + A instance + + + + Creates a new traverse instance from a named type + The type name, for format see + A instance + + + + Creates a new and empty traverse instance + + + + Creates a new traverse instance from a class/type + The class/type + + + + Creates a new traverse instance from an instance + The object + + + + Gets the current value + The value + + + + Gets the current value + The type of the value + The value + + + + Invokes the current method with arguments and returns the result + The method arguments + The value returned by the method + + + + Invokes the current method with arguments and returns the result + The type of the value + The method arguments + The value returned by the method + + + + Sets a value of the current field or property + The value + The same traverse instance + + + + Gets the type of the current field or property + The type + + + + Moves the current traverse instance to a inner type + The type name + A traverse instance + + + + Moves the current traverse instance to a field + The type name + A traverse instance + + + + Moves the current traverse instance to a field + The type of the field + The type name + A traverse instance + + + + Gets all fields of the current type + A list of field names + + + + Moves the current traverse instance to a property + The type name + Optional property index + A traverse instance + + + + Moves the current traverse instance to a field + The type of the property + The type name + Optional property index + A traverse instance + + + + Gets all properties of the current type + A list of property names + + + + Moves the current traverse instance to a method + The name of the method + The arguments defining the argument types of the method overload + A traverse instance + + + + Moves the current traverse instance to a method + The name of the method + The argument types of the method + The arguments for the method + A traverse instance + + + + Gets all methods of the current type + A list of method names + + + + Checks if the current traverse instance is for a field + True if its a field + + + + Checks if the current traverse instance is for a property + True if its a property + + + + Checks if the current traverse instance is for a method + True if its a method + + + + Checks if the current traverse instance is for a type + True if its a type + + + + Iterates over all fields of the current type and executes a traverse action + Original object + The action receiving a instance for each field + + + + Iterates over all fields of the current type and executes a traverse action + Original object + Target object + The action receiving a pair of instances for each field pair + + + + Iterates over all fields of the current type and executes a traverse action + Original object + Target object + The action receiving a dot path representing the field pair and the instances + + + + Iterates over all properties of the current type and executes a traverse action + Original object + The action receiving a instance for each property + + + + Iterates over all properties of the current type and executes a traverse action + Original object + Target object + The action receiving a pair of instances for each property pair + + + + Iterates over all properties of the current type and executes a traverse action + Original object + Target object + The action receiving a dot path representing the property pair and the instances + + + + A default field action that copies fields to fields + + + + Returns a string that represents the current traverse + A string representation + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will not be reported as unused (as well as by other usage inspections). + + + + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , indicates that the corresponding type + is used implicitly. + + + + + Specify the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specify what is considered to be used implicitly when marked + with or . + + + + Members of entity marked with attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with attribute and all its members considered used. + + + diff --git a/ValheimClient/BepInEx/core/0Harmony20.dll b/ValheimClient/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..a84b5ff Binary files /dev/null and b/ValheimClient/BepInEx/core/0Harmony20.dll differ diff --git a/ValheimClient/BepInEx/core/BepInEx.Harmony.dll b/ValheimClient/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..03565da Binary files /dev/null and b/ValheimClient/BepInEx/core/BepInEx.Harmony.dll differ diff --git a/ValheimClient/BepInEx/core/BepInEx.Harmony.xml b/ValheimClient/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..86b7dc6 --- /dev/null +++ b/ValheimClient/BepInEx/core/BepInEx.Harmony.xml @@ -0,0 +1,86 @@ + + + + BepInEx.Harmony + + + + + Specifies the indices of parameters that are ByRef. + + + + + The indices of parameters that are ByRef. + + + + The indices of parameters that are ByRef. + + + + An extension class for Harmony based operations. + + + + + Applies all patches specified in the type. + + The HarmonyInstance to use. + The type to scan. + + + + A wrapper for Harmony based operations. + + + + + Applies all patches specified in the type. + + The type to scan. + The HarmonyInstance to use. + + + + Applies all patches specified in the type. + + The type to scan. + The ID for the Harmony instance to create, which will be used. + + + + Applies all patches specified in the assembly. + + The assembly to scan. + The HarmonyInstance to use. + + + + Applies all patches specified in the assembly. + + The assembly to scan. + The ID for the Harmony instance to create, which will be used. + + + + Applies all patches specified in the calling assembly. + + The Harmony instance to use. + + + + Applies all patches specified in the calling assembly. + + The ID for the Harmony instance to create, which will be used. + + + + Returns an instruction to call the specified delegate. + + The delegate type to emit. + The delegate to emit. + The instruction to + + + diff --git a/ValheimClient/BepInEx/core/BepInEx.Preloader.dll b/ValheimClient/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e4511af Binary files /dev/null and b/ValheimClient/BepInEx/core/BepInEx.Preloader.dll differ diff --git a/ValheimClient/BepInEx/core/BepInEx.Preloader.xml b/ValheimClient/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..fe5607d --- /dev/null +++ b/ValheimClient/BepInEx/core/BepInEx.Preloader.xml @@ -0,0 +1,169 @@ + + + + BepInEx.Preloader + + + + + Doorstop environment variables, passed into the BepInEx preloader. + https://github.com/NeighTools/UnityDoorstop/wiki#environment-variables + + + + + Path to the assembly that was invoked via Doorstop. Contains the same value as in "targetAssembly" configuration option in the config file. + + + + + Full path to the game's "Managed" folder that contains all the game's managed assemblies + + + + + Full path to the game executable currently running. + + + + + Array of paths where Mono searches DLLs from before assembly resolvers are invoked. + + + + + Delegate used in patching assemblies. + + The assembly that is being patched. + + + + Worker class which is used for loading and patching entire folders of assemblies, or alternatively patching and + loading assemblies one at a time. + + + + + List of all patcher plugins to be applied + + + + + Adds a single assembly patcher to the pool of applicable patches. + + Patcher to apply. + + + + Adds all patchers from all managed assemblies specified in a directory. + + Directory to search patcher DLLs from. + + + + Releases all patchers to let them be collected by GC. + + + + + Applies patchers to all assemblies in the given directory and loads patched assemblies into memory. + + Directories to load CLR assemblies from in their search order. + + + + Loads an individual assembly definition into the CLR. + + The assembly to load. + File name of the assembly being loaded. + + + + A single assembly patcher. + + + + + Target assemblies to patch. + + + + + Initializer method that is run before any patching occurs. + + + + + Finalizer method that is run after all patching is done. + + + + + The main patcher method that is called on every DLL defined in . + + + + + Type name of the patcher. + + + + + + + + + + + The main entrypoint of BepInEx, called from Doorstop. + + + + + Recreation of MonoMod's PlatformHelper.DeterminePlatform method, but with libc calls instead of creating processes. + + + + + This exists because the Mono implementation of is/was broken, and would call Write directly instead of calling TraceEvent. + + + + + The main entrypoint of BepInEx, and initializes all patchers and the chainloader. + + + + + The log writer that is specific to the preloader. + + + + + Inserts BepInEx's own chainloader entrypoint into UnityEngine. + + The assembly that will be attempted to be patched. + + + + Allocates a console window for use by BepInEx safely. + + + + + Log listener that listens to logs during preloading time and buffers messages for output in Unity logs later. + + + + + + + + + + + + + + + diff --git a/ValheimClient/BepInEx/core/BepInEx.dll b/ValheimClient/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..92bd9e0 Binary files /dev/null and b/ValheimClient/BepInEx/core/BepInEx.dll differ diff --git a/ValheimClient/BepInEx/core/BepInEx.xml b/ValheimClient/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..1c3d1c4 --- /dev/null +++ b/ValheimClient/BepInEx/core/BepInEx.xml @@ -0,0 +1,1657 @@ + + + + BepInEx + + + + + Base type of all classes representing and enforcing acceptable values of config settings. + + + + Type of values that this class can Clamp. + + + + Change the value to be acceptable, if it's not already. + + + + + Check if the value is an acceptable value. + + + + + Type of the supported values. + + + + + Get the string for use in config files. + + + + + Specify the list of acceptable values for a setting. + + + + + List of values that a setting can take. + + + + + Specify the list of acceptable values for a setting. + If the setting does not equal any of the values, it will be set to the first one. + + + + + + + + + + + + + + Specify the range of acceptable values for a setting. + + + + Lowest acceptable value + Highest acceptable value + + + + Lowest acceptable value + + + + + Highest acceptable value + + + + + + + + + + + + + + Provides access to a single setting inside of a . + + Type of the setting. + + + + Fired when the setting is changed. Does not detect changes made outside from this object. + + + + + Value of this setting. + + + + + + + + Container for a single setting of a . + Each config entry is linked to one config file. + + + + + Types of defaultValue and definition.AcceptableValues have to be the same as settingType. + + + + + Config file this entry is a part of. + + + + + Category and name of this setting. Used as a unique key for identification within a . + + + + + Description / metadata of this setting. + + + + + Type of the that this setting holds. + + + + + Default value of this setting (set only if the setting was not changed before). + + + + + Get or set the value of the setting. + + + + + Get the serialized representation of the value. + + + + + Set the value by using its serialized form. + + + + + If necessary, clamp the value to acceptable value range. T has to be equal to settingType. + + + + + Trigger setting changed event. + + + + + Write a description of this setting using all available metadata. + + + + + Section and key of a setting. Used as a unique key for identification within a . + The same definition can be used in multiple config files, it will point to different settings then. + + + + + + Group of the setting. All settings within a config file are grouped by this. + + + + + Name of the setting. + + + + + Create a new definition. Definitions with same section and key are equal. + + Group of the setting, case sensitive. + Name of the setting, case sensitive. + + + + + + + Check if the definitions are the same. + + + + + + Check if the definitions are the same. + + + + + + + + Check if the definitions are the same. + + + + + Check if the definitions are the same. + + + + + + + + Metadata of a . + + + + + Create a new description. + + Text describing the function of the setting and any notes or warnings. + Range of values that this setting can take. The setting's value will be automatically clamped. + Objects that can be used by user-made classes to add functionality. + + + + Text describing the function of the setting and any notes or warnings. + + + + + Range of acceptable values for a setting. + + + + + Objects that can be used by user-made classes to add functionality. + + + + + An empty description. + + + + + A helper class to handle persistent data. All public methods are thread-safe. + + + + + All config entries inside + + + + + Create a list with all config entries inside of this config file. + + + + + Create an array with all config entries inside of this config file. Should be only used for metadata purposes. + If you want to access and modify an existing setting then use + instead with no description. + + + + + Full path to the config file. The file might not exist until a setting is added and changed, or is called. + + + + + If enabled, writes the config to disk every time a value is set. + If disabled, you have to manually use or the changes will be lost! + + + + + + + + Create a new config file at the specified config path. + + Full path to a file that contains settings. The file will be created as needed. + If the config file/directory doesn't exist, create it immediately. + Information about the plugin that owns this setting file. + + + + Reloads the config from disk. Unsaved changes are lost. + + + + + Writes the config to disk. + + + + + Access one of the existing settings. If the setting has not been added yet, null is returned. + If the setting exists but has a different type than T, an exception is thrown. + New settings should be added with . + + Type of the value contained in this setting. + Section and Key of the setting. + + + + Access one of the existing settings. If the setting has not been added yet, null is returned. + If the setting exists but has a different type than T, an exception is thrown. + New settings should be added with . + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + + + + Access one of the existing settings. If the setting has not been added yet, false is returned. Otherwise, true. + If the setting exists but has a different type than T, an exception is thrown. + New settings should be added with . + + Type of the value contained in this setting. + Section and Key of the setting. + The ConfigEntry value to return. + + + + Access one of the existing settings. If the setting has not been added yet, null is returned. + If the setting exists but has a different type than T, an exception is thrown. + New settings should be added with . + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + The ConfigEntry value to return. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each definition can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section and Key of the setting. + Value of the setting if the setting was not created yet. + Description of the setting shown to the user and other metadata. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + Value of the setting if the setting was not created yet. + Description of the setting shown to the user and other metadata. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + Value of the setting if the setting was not created yet. + Simple description of the setting shown to the user. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each definition can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section and Key of the setting. + Value of the setting if the setting was not created yet. + Description of the setting shown to the user and other metadata. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + Value of the setting if the setting was not created yet. + Description of the setting shown to the user and other metadata. + + + + Create a new setting. The setting is saved to drive and loaded automatically. + Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception. + + Type of the value contained in this setting. + Section/category/group of the setting. Settings are grouped by this. + Name of the setting. + Value of the setting if the setting was not created yet. + Simple description of the setting shown to the user. + + + + Access a setting. Use Bind instead. + + + + + Access a setting. Use Bind instead. + + + + + An event that is fired every time the config is reloaded. + + + + + Fired when one of the settings is changed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns the ConfigDefinitions that the ConfigFile contains. + Creates a new array when the property is accessed. Thread-safe. + + + + + Returns the ConfigEntryBase values that the ConfigFile contains. + Creates a new array when the property is accessed. Thread-safe. + + + + + Provides access to a single setting inside of a . + + Type of the setting. + + + + Entry of this setting in the . + + + + + Unique definition of this setting. + + + + + Config file this setting is inside of. + + + + + Fired when the setting is changed. Does not detect changes made outside from this object. + + + + + Value of this setting. + + + + + A keyboard shortcut that can be used in Update method to check if user presses a key combo. The shortcut is only + triggered when the user presses the exact combination. For example, F + LeftCtrl will trigger only if user + presses and holds only LeftCtrl, and then presses F. If any other keys are pressed, the shortcut will not trigger. + + Can be used as a value of a setting in + to allow user to change this shortcut and have the changes saved. + + How to use: Use in this class instead of in the Update loop. + + + + + Shortcut that never triggers. + + + + + All KeyCode values that can be used in a keyboard shortcut. + + + + + Create a new keyboard shortcut. + + Main key to press + Keys that should be held down before main key is registered + + + + Main key of the key combination. It has to be pressed / let go last for the combination to be triggered. + If the combination is empty, is returned. + + + + + Modifiers of the key combination, if any. + + + + + Attempt to deserialize key combination from the string. + + + + + Serialize the key combination into a user readable string. + + + + + Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed + + + + + Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed + + + + + Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed. + + + + + + + + + + + + + + Arguments for events concerning a change of a setting. + + + + + + + + + Setting that was changed + + + + + Serializer/deserializer used by the config system. + + + + + Convert object of a given type to a string using available converters. + + + + + Convert string to an object of a given type using available converters. + + + + + Convert string to an object of a given type using available converters. + + + + + Get a converter for a given type if there is any. + + + + + Add a new type converter for a given type. + If a different converter is already added, this call is ignored and false is returned. + + + + + Check if a given type can be converted to and from string. + + + + + Give a list of types with registered converters. + + + + + For types that are in assemblies that can't get loaded before preloader runs (or it won't work on these assemblies) + + + + + A serializer/deserializer combo for some type(s). Used by the config system. + + + + + Used to serialize the type into a (hopefully) human-readable string. + Object is the instance to serialize, Type is the object's type. + + + + + Used to deserialize the type from a string. + String is the data to deserialize, Type is the object's type, should return instance to an object of Type. + + + + + True if an external console has been started, false otherwise. + + + + + The stream that writes to the standard out stream of the process. Should never be null. + + + + + The stream that writes to an external console. Null if no such console exists + + + + + Data class that represents information about a loadable BepInEx plugin. + Contains all metadata and additional info required for plugin loading by . + + + + + General metadata about a plugin. + + + + + Collection of attributes that describe what processes the plugin can run on. + + + + + Collection of attributes that describe what plugins this plugin depends on. + + + + + Collection of attributes that describe what plugins this plugin + is incompatible with. + + + + + File path to the plugin DLL + + + + + Instance of the plugin that represents this info. NULL if no plugin is instantiated from info (yet) + + + + + + + + This attribute denotes that a class is a plugin, and specifies the required metadata. + + + + + The unique identifier of the plugin. Should not change between plugin versions. + + + + + The user friendly name of the plugin. Is able to be changed between versions. + + + + + The specfic version of the plugin. + + + + The unique identifier of the plugin. Should not change between plugin versions. + The user friendly name of the plugin. Is able to be changed between versions. + The specfic version of the plugin. + + + + This attribute specifies any dependencies that this plugin has on other plugins. + + + + + Flags that are applied to a dependency + + + + + The plugin has a hard dependency on the referenced plugin, and will not run without it. + + + + + This plugin has a soft dependency on the referenced plugin, and is able to run without it. + + + + + The GUID of the referenced plugin. + + + + + The flags associated with this dependency definition. + + + + + The minimum version of the referenced plugin. + + + + + Marks this as depenant on another plugin. The other plugin will be loaded before this one. + If the other plugin doesn't exist, what happens depends on the parameter. + + The GUID of the referenced plugin. + The flags associated with this dependency definition. + + + + Marks this as depenant on another plugin. The other plugin will be loaded before this one. + If the other plugin doesn't exist or is of a version below , this plugin will not load and an error will be logged instead. + + The GUID of the referenced plugin. + The minimum version of the referenced plugin. + When version is supplied the dependency is always treated as HardDependency + + + + This attribute specifies other plugins that are incompatible with this plugin. + + + + + The GUID of the referenced plugin. + + + + + Marks this as incompatible with another plugin. + If the other plugin exists, this plugin will not be loaded and a warning will be shown. + + The GUID of the referenced plugin. + + + + This attribute specifies which processes this plugin should be run for. Not specifying this attribute will load the plugin under every process. + + + + + The name of the process that this plugin will run under. + + + + The name of the process that this plugin will run under. + + + + Helper class to use for retrieving metadata about a plugin, defined as attributes. + + + + + Retrieves the BepInPlugin metadata from a plugin type. + + The plugin type. + The BepInPlugin metadata of the plugin type. + + + + Retrieves the BepInPlugin metadata from a plugin instance. + + The plugin instance. + The BepInPlugin metadata of the plugin instance. + + + + Gets the specified attributes of a type, if they exist. + + The attribute type to retrieve. + The plugin type. + The attributes of the type, if existing. + + + + Gets the specified attributes of an instance, if they exist. + + The attribute type to retrieve. + The plugin instance. + The attributes of the instance, if existing. + + + + Retrieves the dependencies of the specified plugin type. + + The plugin type. + A list of all plugin types that the specified plugin type depends upon. + + + + This class is appended to AssemblyInfo.cs when BepInEx is built via a CI pipeline. + It is mainly intended to signify that the current build is not a release build and is special, like for instance a bleeding edge build. + + + + + The manager and loader for all plugins, and the entry point for BepInEx plugin system. + + + + + The loaded and initialized list of plugins. + + + + + List of all loaded via the chainloader. + + + + + Collection of error chainloader messages that occured during plugin loading. + Contains information about what certain plugins were not loaded. + + + + + The GameObject that all plugins are attached to as components. + + + + + Initializes BepInEx to be able to start the chainloader. + + + + + Analyzes the given type definition and attempts to convert it to a valid + + Type definition to analyze. + If the type represent a valid plugin, returns a instance. Otherwise, return null. + + + + The entrypoint for the BepInEx plugin system. + + + + + A cacheable metadata item. Can be used with and to cache plugin metadata. + + + + + Serialize the object into a binary format. + + + + + + Loads the object from binary format. + + + + + + A cached assembly. + + + + + + List of cached items inside the assembly. + + + + + Timestamp of the assembly. Used to check the age of the cache. + + + + + Provides methods for loading specified types from an assembly. + + + + + Default assembly resolved used by the + + + + + Default reader parameters used by + + + + + Event fired when fails to resolve a type during type loading. + + + + + Looks up assemblies in the given directory and locates all types that can be loaded and collects their metadata. + + The specific base type to search for. + The directory to search for assemblies. + A function to check if a type should be selected and to build the type metadata. + A filter function to quickly determine if the assembly can be loaded. + The name of the cache to get cached types from. + A dictionary of all assemblies in the directory and the list of type metadatas of types that match the selector. + + + + Loads an index of type metadatas from a cache. + + Name of the cache + Cacheable item + Cached type metadatas indexed by the path of the assembly that defines the type. If no cache is defined, return null. + + + + Saves indexed type metadata into a cache. + + Name of the cache + List of plugin metadatas indexed by the path to the assembly that contains the types + Cacheable item + + + + Converts TypeLoadException to a readable string. + + TypeLoadException + Readable representation of the exception + + + + The base plugin type that is used by the BepInEx plugin loader. + + + + + Information about this plugin as it was loaded. + + + + + Logger instance tied to this plugin. + + + + + Default config file tied to this plugin. The config file will not be created until + any settings are added and changed, or is called. + + + + + Create a new instance of a plugin and all of its tied in objects. + + BepInPlugin attribute is missing. + + + + Logs entries using Unity specific outputs. + + + + + Log levels to display. + + + + + Writer for the disk log. + + + + + Timer for flushing the logs to a file. + + + + + Whether to write Unity log messages to disk log. + + + + + Creates a new disk log listener. + + Path to the log. + Log levels to display. + Whether to append logs to an already existing log file. + Whether to include Unity log into the disk log. + + + + + + + + + + Disposes of Disk logger + + + + + Log event arguments. Contains info about the log message. + + + + + Logged data. + + + + + Log levels for the data. + + + + + Log source that emitted the log event. + + + + + Creates the log event args- + + Logged data. + Log level of the data. + Log source that emits these args. + + + + + + + Like but appends newline at the end. + + Same output as but with new line. + + + + A static Logger instance. + + + + + Collection of all log listeners that receive log events. + + + + + Collection of all log source that output log events. + + + + + Logs an entry to the current logger instance. + + The level of the entry. + The textual value of the entry. + + + + Creates a new log source with a name and attaches it to log sources. + + Name of the log source to create. + An instance of that allows to write logs. + + + + The level, or severity of a log entry. + + + + + No level selected. + + + + + A fatal error has occurred, which cannot be recovered from. + + + + + An error has occured, but can be recovered from. + + + + + A warning has been produced, but does not necessarily mean that something wrong has happened. + + + + + An important message that should be displayed to the user. + + + + + A message of low importance. + + + + + A message that would likely only interest a developer. + + + + + All log levels. + + + + + Helper methods for log level handling. + + + + + Gets the highest log level when there could potentially be multiple levels provided. + + The log level(s). + The highest log level supplied. + + + + Returns a translation of a log level to it's associated console colour. + + The log level(s). + A console color associated with the highest log level supplied. + + + + A generic log listener that receives log events and can route them to some output (e.g. file, console, socket). + + + + + Handle an incoming log event. + + Log source that sent the event. Don't use; instead use + Information about the log message. + + + + Log source that can output log messages. + + + + + Name of the log source. + + + + + Event that sends the log message. Call to send a log message. + + + + + A generic, multi-purpose log source. Exposes simple API to manually emit logs. + + + + + + + + + + + Creates a manual log source. + + Name of the log source. + + + + Logs a message with the specified log level. + + Log levels to attach to the message. Multiple can be used with bitwise ORing. + Data to log. + + + + Logs a message with level. + + Data to log. + + + + Logs a message with level. + + Data to log. + + + + Logs a message with level. + + Data to log. + + + + Logs a message with level. + + Data to log. + + + + Logs a message with level. + + Data to log. + + + + Logs a message with level. + + Data to log. + + + + + + + A source that routes all logs from API to BepInEx logger. + + + + + + Whether Trace logs are rerouted. + + + + + Creates a new trace log source. + + New log source (or already existing one). + + + + Internal log source. + + + + + Creates a new trace log source. + + + + + Writes a message to the underlying instance. + + The message to write. + + + + Writes a message and a newline to the underlying instance. + + The message to write. + + + + + + + + + + Logs entries using Unity specific outputs. + + + + + + + + + + + Logs entries using Unity specific outputs. + + + + + + + + + + + Logs entries using Unity specific outputs. + + + + + + + + + + + Creates a new Unity log source. + + + + + + + + Paths used by BepInEx + + + + + List of directories from where Mono will search assemblies before assembly resolving is invoked. + + + + + The directory that the core BepInEx DLLs reside in. + + + + + The path to the core BepInEx DLL. + + + + + The path to the main BepInEx folder. + + + + + The path of the currently executing program BepInEx is encapsulated in. + + + + + The directory that the currently executing process resides in. + On OSX however, this is the parent directory of the game.app folder. + + + + + The path to the Managed folder of the currently running Unity game. + + + + + The path to the config directory. + + + + + The path to the global BepInEx configuration file. + + + + + The path to temporary cache files. + + + + + The path to the patcher plugin folder which resides in the BepInEx folder. + + + + + The path to the plugin folder which resides in the BepInEx folder. + + This is ONLY guaranteed to be set correctly when Chainloader has been initialized. + + + + + + The name of the currently executing process. + + + + + Provides methods for running code on other threads and synchronizing with the main thread. + + + + + Current instance of the helper. + + + + + Gives methods for invoking delegates on the main unity thread, both synchronously and asynchronously. + Can be used in many built-in framework types, for example + and to make their events fire on the main unity thread. + + + + + Queue the delegate to be invoked on the main unity thread. Use to synchronize your threads. + + + + + Queue the delegate to be invoked on a background thread. Use this to run slow tasks without affecting the game. + NOTE: Most of Unity API can not be accessed while running on another thread! + + + Task to be executed on another thread. Can optionally return an Action that will be executed on the main thread. + You can use this action to return results of your work safely. Return null if this is not needed. + + + + + False if current code is executing on the main unity thread, otherwise True. + Warning: Will return true before the first frame finishes (i.e. inside plugin Awake and Start methods). + + + + + + Convenience extensions for utilizing multiple threads and using the . + + + + + + + + Apply a function to a collection of data by spreading the work on multiple threads. + Outputs of the functions are returned to the current thread and yielded one by one. + + Type of the input values. + Type of the output values. + Input values for the work function. + Function to apply to the data on multiple threads at once. + Number of worker threads. By default SystemInfo.processorCount is used. + An exception was thrown inside one of the threads, and the operation was aborted. + Need at least 1 workerCount. + + + + Generic helper properties and methods. + + + + + Whether current Common Language Runtime supports dynamic method generation using namespace. + + + + + An encoding for UTF-8 which does not emit a byte order mark (BOM). + + + + + Try to perform an action. + + Action to perform. + Possible exception that gets returned. + True, if action succeeded, false if an exception occured. + + + + Combines multiple paths together, as the specific method is not available in .NET 3.5. + + The multiple paths to combine together. + A combined path. + + + + Returns the parent directory of a path, optionally specifying the amount of levels. + + The path to get the parent directory of. + The amount of levels to traverse. Defaults to 1 + The parent directory. + + + + Tries to parse a bool, with a default value if unable to parse. + + The string to parse + The value to return if parsing is unsuccessful. + Boolean value of input if able to be parsed, otherwise default value. + + + + Converts a file path into a UnityEngine.WWW format. + + The file path to convert. + A converted file path. + + + + Indicates whether a specified string is null, empty, or consists only of white-space characters. + + The string to test. + True if the value parameter is null or empty, or if value consists exclusively of white-space characters. + + + + Sorts a given dependency graph using a direct toposort, reporting possible cyclic dependencies. + + Nodes to sort + Function that maps a node to a collection of its dependencies. + Type of the node in a dependency graph. + Collection of nodes sorted in the order of least dependencies to the most. + Thrown when a cyclic dependency occurs. + + + + Checks whether a given cecil type definition is a subtype of a provided type. + + Cecil type definition + Type to check against + Whether the given cecil type is a subtype of the type. + + + + Try to resolve and load the given assembly DLL. + + Name of the assembly, of the type . + Directory to search the assembly from. + The loaded assembly. + True, if the assembly was found and loaded. Otherwise, false. + + + + Try to resolve and load the given assembly DLL. + + Name of the assembly, of the type . + Directory to search the assembly from. + Reader parameters that contain possible custom assembly resolver. + The loaded assembly. + True, if the assembly was found and loaded. Otherwise, false. + + + + Tries to create a file with the given name + + Path of the file to create + File open mode + Resulting filestream + File access options + File share options + + + + + Try to parse given string as an assembly name + + Fully qualified assembly name + Resulting instance + true, if parsing was successful, otherwise false + + On some versions of mono, using fails because it runs on unmanaged side + which has problems with encoding. + Using solves this by doing parsing on managed side instead. + + + + + Gets unique files in all given directories. If the file with the same name exists in multiple directories, + only the first occurrence is returned. + + Directories to search from. + File pattern to search. + Collection of all files in the directories. + + + + Console class with safe handlers for Unity 4.x, which does not have a proper Console implementation + + + + diff --git a/ValheimClient/BepInEx/core/HarmonyXInterop.dll b/ValheimClient/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..9cce3c0 Binary files /dev/null and b/ValheimClient/BepInEx/core/HarmonyXInterop.dll differ diff --git a/ValheimClient/BepInEx/core/Mono.Cecil.Mdb.dll b/ValheimClient/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..bddf5cb Binary files /dev/null and b/ValheimClient/BepInEx/core/Mono.Cecil.Mdb.dll differ diff --git a/ValheimClient/BepInEx/core/Mono.Cecil.Pdb.dll b/ValheimClient/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..9227f6d Binary files /dev/null and b/ValheimClient/BepInEx/core/Mono.Cecil.Pdb.dll differ diff --git a/ValheimClient/BepInEx/core/Mono.Cecil.Rocks.dll b/ValheimClient/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..a77ac87 Binary files /dev/null and b/ValheimClient/BepInEx/core/Mono.Cecil.Rocks.dll differ diff --git a/ValheimClient/BepInEx/core/Mono.Cecil.dll b/ValheimClient/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..18735f9 Binary files /dev/null and b/ValheimClient/BepInEx/core/Mono.Cecil.dll differ diff --git a/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.dll b/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..a5f47d1 Binary files /dev/null and b/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.dll differ diff --git a/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.xml b/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..45e9d3b --- /dev/null +++ b/ValheimClient/BepInEx/core/MonoMod.RuntimeDetour.xml @@ -0,0 +1,178 @@ + + + + MonoMod.RuntimeDetour + + + + + A fully managed detour. + Multiple Detours for a method to detour from can exist at any given time. Detours can be layered. + If you're writing your own detour manager or need to detour native functions, it's better to create instances of NativeDetour instead. + + + + + Mark the detour as applied in the detour chain. This can be done automatically when creating an instance. + + + + + Undo the detour without freeing it, allowing you to reapply it later. + + + + + Free the detour, while also permanently undoing it. This makes any further operations on this detour invalid. + + + + + Undo and free this temporary detour. + + + + + Generate a new DynamicMethod with which you can invoke the previous state. + + + + + Generate a new DynamicMethod with which you can invoke the previous state. + + + + + Generate a new DynamicMethod with which you can invoke the previous state. + + + + + A "raw" native detour, acting as a wrapper around NativeDetourData with a few helpers. + Only one NativeDetour for a method to detour from can exist at any given time. NativeDetours cannot be layered. + If you don't need the trampoline generator or any of the management helpers, use DetourManager.Native directly. + Unless you're writing your own detour manager or need to detour native functions, it's better to create instances of Detour instead. + + + + + Apply the native detour. This can be done automatically when creating an instance. + + + + + Undo the native detour without freeing the detour native data, allowing you to reapply it later. + + + + + Changes the source of this native detour to a new source address. This does not repair the old source location. + This also assumes that is simply a new address for the same method as this was constructed with. + + The new source location. + + + + Changed the target of this native detour to a new target. + + The new target address. + + + + Free the detour's data without undoing it. This makes any further operations on this detour invalid. + + + + + Undo and free this temporary detour. + + + + + Generate a new DynamicMethod with which you can invoke the previous state. + If the NativeDetour holds a reference to a managed method, a copy of the original method is returned. + If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned. + + + + + Generate a new delegate with which you can invoke the previous state. + If the NativeDetour holds a reference to a managed method, a copy of the original method is returned. + If the NativeDetour holds a reference to a native function, an "undo-call-redo" trampoline with a matching signature is returned. + + + + + Write the given value at the address to + offs, afterwards advancing offs by sizeof(byte). + + + + + Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort). + + + + + Write the given value at the address to + offs, afterwards advancing offs by sizeof(ushort). + + + + + Write the given value at the address to + offs, afterwards advancing offs by sizeof(ulong). + + + + + Generate a DynamicMethod to easily call the given native function from another DynamicMethod. + + The pointer to the native function to call. + A MethodBase with the target function's signature. + The detoured DynamicMethod. + + + + Fill the DynamicMethodDefinition with a throw. + + + + + Emit a call to DetourManager.Native.Copy using the given parameters. + + + + + Emit a call to DetourManager.Native.Apply using a copy of the given data. + + + + + The data forming a "raw" native detour, created and consumed by DetourManager.Native. + + + + + The method to detour from. Set when the structure is created by the IDetourNativePlatform. + + + + + The target method to be called instead. Set when the structure is created by the IDetourNativePlatform. + + + + + The type of the detour. Determined when the structure is created by the IDetourNativePlatform. + + + + + The size of the detour. Calculated when the structure is created by the IDetourNativePlatform. + + + + + DetourManager.Native-specific data. + + + + diff --git a/ValheimClient/BepInEx/core/MonoMod.Utils.dll b/ValheimClient/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..8fd1161 Binary files /dev/null and b/ValheimClient/BepInEx/core/MonoMod.Utils.dll differ diff --git a/ValheimClient/BepInEx/core/MonoMod.Utils.xml b/ValheimClient/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..98b3a7d --- /dev/null +++ b/ValheimClient/BepInEx/core/MonoMod.Utils.xml @@ -0,0 +1,1465 @@ + + + + MonoMod.Utils + + + + + An IL manipulation "context" with various helpers and direct access to the MethodBody. + + + + + The manipulator callback, accepted by the Invoke method. + + + + + + The manipulated method. + + + + + The manipulated method's IL processor. + + + + + The manipulated method body. + + + + + The manipulated method's module. + + + + + The manipulated method instructions. + + + + + A readonly list of all defined labels. + + + + + Has the context been made read-only? No further method access is possible, but the context has not yet been disposed. + + + + + Events which run when the context will be disposed. + + + + + The current reference bag. Used for methods such as EmitReference and EmitDelegate. + + + + + Invoke a given manipulator callback. + + The manipulator to run in this context. + + + + Mark this ILContext as read-only and prevent this context from further accessing the originally passed method. + + + If the method is altered prior to calling MakeReadOnly or afterwards by accessing the method directly, the results are undefined. + + + + + See + + + + + See + + + + + See + + + + + Define a new label to be marked with a cursor. + + A label without a target instruction. + + + + Define a new label pointing at a given instruction. + + The instruction the label will point at. + A label pointing at the given instruction. + + + + Determine the index of a given instruction. + + The instruction to get the index of. + The instruction index, or the end of the method body if it hasn't been found. + + + + Obtain all labels pointing at the given instruction. + + The instruction to get all labels for. + All labels targeting the given instruction. + + + + Bind an arbitary object to an ILContext for static retrieval. + + The type of the object. The combination of typeparam and id provides the unique static reference. + The object to store. + The id to use in combination with the typeparam for object retrieval. + + + + Dispose this context, making it read-only and invoking all OnDispose event listeners. + + + + + Obtain a string representation of this context (method ID and body). + + A string representation of this context. + + + + Specifies where a ILCursor should be positioned in relation to the target of a search function + + + + + Move the cursor before the first instruction in the match + + + + + Equivalent to Before with `cursor.MoveAfterLabels()` causing emitted instructions to become the target of incoming labels + + + + + Move the cursor after the last instruction in the match + + + + + Indicates whether the position of a ILCursor is the result of a search function and + if the next search should ignore the instruction preceeding or following this cursor. + + SearchTarget.Next is the result of searching with MoveType.Before, and SearchTarget.Prev from MoveType.After + + + + + A foward searching function cannot match the Next instruction and must move the cursor forward + + + + + A reverse searching function cannot match the Next instruction and must move the cursor backward + + + + + A cursor used to manipulate a method body in an ILContext. + + + + + The context to which this cursor belongs to. + + + + + The instruction immediately following the cursor position or null if the cursor is at the end of the instruction list. + + + + + The instruction immediately preceding the cursor position or null if the cursor is at the start of the instruction list. + + + + + The instruction immediately preceding the cursor position or null if the cursor is at the start of the instruction list. + + + + + The index of the instruction immediately following the cursor position. Range: 0 to Instrs.Count + Setter accepts negative indexing by adding Instrs.Count to the operand + + + + + Indicates whether the position of a MMILCursor is the result of a search function and + if the next search should ignore the instruction preceeding or following this cursor. + + See + + + + + Enumerates all labels which point to the current instruction (label.Target == Next) + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + Create a clone of this cursor. + + The cloned cursor. + + + + Is this cursor before the given instruction? + + The instruction to check. + True if this cursor is before the given instruction, false otherwise. + + + + Is this cursor after the given instruction? + + The instruction to check. + True if this cursor is after the given instruction, false otherwise. + + + + Obtain a string representation of this cursor (method ID, index, search target, surrounding instructions). + + A string representation of this cursor. + + + + Move the cursor to a target instruction. All other movements go through this. + + The target instruction + Where to move in relation to the target instruction and incoming labels (branches) + Whether to set the `SearchTarget` and skip the target instruction with the next search function + this + + + + Move the cursor after incoming labels (branches). If an instruction is emitted, all labels which currently point to Next, will point to the newly emitted instruction. + + this + + + + Move the cursor before incoming labels (branches). This is the default behaviour. Emitted instructions will not cause labels to change targets. + + this + + + + Move the cursor to a target index. Supports negative indexing. See + + this + + + + Overload for Goto(label.Target). defaults to MoveType.AfterLabel + + this + + + + Search forward and moves the cursor to the next sequence of instructions matching the corresponding predicates. See also + + this + If no match is found + + + + Search forward and moves the cursor to the next sequence of instructions matching the corresponding predicates. + + True if a match was found + + + + Search backward and moves the cursor to the next sequence of instructions matching the corresponding predicates. See also + + this + If no match is found + + + + Search backward and moves the cursor to the next sequence of instructions matching the corresponding predicates. + + True if a match was found + + + + Find the next occurences of a series of instructions matching the given set of predicates with gaps permitted. + + An array of cursors corresponding to each found instruction (MoveType.Before) + If no match is found + + + + Find the next occurences of a series of instructions matching the given set of predicates with gaps permitted. + + An array of cursors corresponding to each found instruction (MoveType.Before) + True if a match was found + + + + Search backwards for occurences of a series of instructions matching the given set of predicates with gaps permitted. + + An array of cursors corresponding to each found instruction (MoveType.Before) + If no match is found + + + + Search backwards for occurences of a series of instructions matching the given set of predicates with gaps permitted. + + An array of cursors corresponding to each found instruction (MoveType.Before) + True if a match was found + + + + Set the target of a label to the current position (label.Target = Next) and moves after it. + + The label to mark + + + + Create a new label targetting the current position (label.Target = Next) and moves after it. + + The newly created label + + + + Create a new label for use with + + A new label with no target + + + + Remove the Next instruction + + + + + Remove several instructions + + + + + Move the cursor and all labels the cursor is positioned after to a target instruction + + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position. + + The instruction opcode. + The instruction operand. + this + + + + Emit a new instruction at this cursor's current position, accessing a given member. + + The type in which the member is defined. + The instruction opcode. + The accessed member name. + this + + + + Bind an arbitary object to an ILContext for static retrieval. See + + + + + Emit the IL to retrieve a stored reference of type with the given and place it on the stack. + + + + + Store an object in the reference store, and emit the IL to retrieve it and place it on the stack. + + + + + Emit the IL to invoke a delegate as if it were a method. Stack behaviour matches OpCodes.Call + + + + + A label to be used in ILContexts. + + + + + The target instruction this label points at. + + + + + All instructions using this label. + + + + + An IL inline reference bag used for ILContexts. + + + + + Get the object for the given ID. + + The object type. + The object ID. + The stored object. + + + + Get a MethodInfo for the getter. + + The object type. + The getter method. + + + + Store a new object. + + The object type. + The object to be stored. + An ID to be used for all further operations. + + + + Remove the object with the given ID from the bag, essentially clearing the ID's slot. + + The object type. + The object ID. + + + + Get a MethodInfo invoking a delegate of the given type, with the delegate at the top of the stack. Used by . + + The delegate type. + A MethodInfo invoking a delegate of the given type. + + + + The default IL reference bag. Throws NotSupportedException for every operation. + + + + + An IL reference bag implementation to be used for runtime-generated methods. + + + + + Collection of extensions used by MonoMod and other projects. + + + + + Create a hexadecimal string for the given bytes. + + The input bytes. + The output hexadecimal string. + + + + Invokes all delegates in the invocation list, passing on the result to the next. + + Type of the result. + The multicast delegate. + The initial value and first parameter. + Any other arguments that may be passed. + The result of all delegates. + + + + Invokes all delegates in the invocation list, as long as the previously invoked delegate returns true. + + + + + Invokes all delegates in the invocation list, as long as the previously invoked delegate returns false. + + + + + Invokes all delegates in the invocation list, as long as the previously invoked delegate returns null. + + + + + Split PascalCase words to become Pascal Case instead. + + PascalCaseString + Pascal Case String + + + + Read the string from the BinaryReader BinaryWriter in a C-friendly format. + + The input which the method reads from. + The output string. + + + + Write the string to the BinaryWriter in a C-friendly format. + + The output which the method writes to. + The input string. + + + + Cast a delegate from one type to another. Compatible with delegates holding an invocation list (combined delegates). + + The input delegate. + The output delegate. + + + + Cast a delegate from one type to another. Compatible with delegates holding an invocation list (combined delegates). + + The input delegate. + The wanted output delegate type. + The output delegate. + + + + Print the exception to the console, including extended loading / reflection data useful for mods. + + + + + Get the method of interest for a given state machine method. + + The method creating the state machine. + The "main" method in the state machine. + + + + Gets the actual generic method definition of a method, as defined on the fully open type. + + The potentially instantiated method to find the definition of. + The original method definition, with no generic arguments filled in. + + + + Safely resolve a reference, silently discarding any exceptions. + + The reference to resolve. + The resolved definition or null. + + + + Safely resolve a reference, silently discarding any exceptions. + + The reference to resolve. + The resolved definition or null. + + + + Safely resolve a reference, silently discarding any exceptions. + + The reference to resolve. + The resolved definition or null. + + + + Safely resolve a reference, silently discarding any exceptions. + + The reference to resolve. + The resolved definition or null. + + + + Get a certain custom attribute from an attribute provider. + + The attribute provider. + The custom attribute name. + The first matching custom attribute, or null if no matching attribute has been found. + + + + Determine if an attribute provider has got a specific custom attribute. + + The attribute provider. + The custom attribute name. + true if the attribute provider contains the given custom attribute, false otherwise. + + + + Get the integer value pushed onto the stack with this instruction. + + The instruction to get the pushed integer value for. + The pushed integer value. + + + + Get the integer value pushed onto the stack with this instruction. + + The instruction to get the pushed integer value for. + The pushed integer value or null. + + + + Determine if the method call is a base method call. + + The caller method body. + The called method. + True if the called method is a base method of the caller method, false otherwise. + + + + Determine if the given method can be preferably called using callvirt. + + The called method. + True if the called method can be called using callvirt, false otherwise. + + + + Determine if the given type is a struct (also known as "value type") or struct-alike (f.e. primitive). + + The type to check. + True if the type is a struct, primitive or similar, false otherwise. + + + + Get the long form opcode for any short form opcode. + + The short form opcode. + The long form opcode. + + + + Get the short form opcode for any long form opcode. + + The long form opcode. + The short form opcode. + + + + Calculate updated instruction offsets. Required for certain manual fixes. + + The method to recalculate the IL instruction offsets for. + + + + Fix (and optimize) any instructions which should use the long / short form opcodes instead. + + The method to apply the fixes to. + + + + Check if the signatures of a given System.Reflection and Mono.Cecil member reference match. + + The System.Reflection member reference. + The Mono.Cecil member reference. + True if both references share the same signature, false otherwise. + + + + Check if the signatures of a given System.Reflection and Mono.Cecil member reference match. + + The Mono.Cecil member reference. + The System.Reflection member reference. + True if both references share the same signature, false otherwise. + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + Determine if two types are compatible with each other (f.e. object with string, or enums with their underlying integer type). + + The first type. + The second type. + True if both types are compatible with each other, false otherwise. + + + + Creates a delegate of the specified type from this method. + + The method to create the delegate from. + The type of the delegate to create. + The delegate for this method. + + + + Creates a delegate of the specified type with the specified target from this method. + + The method to create the delegate from. + The type of the delegate to create. + The object targeted by the delegate. + The delegate for this method. + + + + Creates a delegate of the specified type from this method. + + The method to create the delegate from. + The type of the delegate to create. + The delegate for this method. + + + + Creates a delegate of the specified type with the specified target from this method. + + The method to create the delegate from. + The type of the delegate to create. + The object targeted by the delegate. + The delegate for this method. + + + + Find a method for a given ID. + + The type to search in. + The method ID. + Whether to perform a simple search pass as well or not. + The first matching method or null. + + + + Find a method for a given ID recursively (including the passed type's base types). + + The type to search in. + The method ID. + Whether to perform a simple search pass as well or not. + The first matching method or null. + + + + Find a method for a given ID. + + The type to search in. + The method ID. + Whether to perform a simple search pass as well or not. + The first matching method or null. + + + + Find a method for a given ID recursively (including the passed type's base types). + + The type to search in. + The method ID. + Whether to perform a simple search pass as well or not. + The first matching method or null. + + + + Find a property for a given name. + + The type to search in. + The property name. + The first matching property or null. + + + + Find a property for a given name recursively (including the passed type's base types). + + The type to search in. + The property name. + The first matching property or null. + + + + Find a field for a given name. + + The type to search in. + The field name. + The first matching field or null. + + + + Find a field for a given name recursively (including the passed type's base types). + + The type to search in. + The field name. + The first matching field or null. + + + + Find an event for a given name. + + The type to search in. + The event name. + The first matching event or null. + + + + Find an event for a given name recursively (including the passed type's base types). + + The type to search in. + The event name. + The first matching event or null. + + + + Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. + + The method to get the ID for. + The name to use instead of the reference's own name. + The ID to use instead of the reference's declaring type ID. + Whether the type ID should be included or not. System.Reflection avoids it by default. + Whether the ID should be "simple" (name only). + The ID. + + + + Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. + + The call site to get the ID for. + The ID. + + + + Get a reference ID that is similar to the full name, but consistent between System.Reflection and Mono.Cecil. + + The method to get the ID for. + The name to use instead of the reference's own name. + The ID to use instead of the reference's declaring type ID. + Whether the type ID should be included or not. System.Reflection avoids it by default. + Whether the method is regarded as a proxy method or not. Setting this paramater to true will skip the first parameter. + Whether the ID should be "simple" (name only). + The ID. + + + + Get the "patch name" - the name of the target to patch - for the given member. + + The member to get the patch name for. + The patch name. + + + + Get the "patch name" - the name of the target to patch - for the given member. + + The member to get the patch name for. + The patch name. + + + + Clone the given method definition. + + The original method. + The method definition to apply the cloning process onto, or null to create a new method. + A clone of the original method. + + + + Clone the given method body. + + The original method body. + The method which will own the newly cloned method body. + A clone of the original method body. + + + + Force-update a generic parameter's position and type. + + The generic parameter to update. + The new position. + The new type. + The updated generic parameter. + + + + Resolve a given generic parameter in another context. + + The new context. + The original generic parameter. + A generic parameter provided by the given context which matches the original generic parameter. + + + + Relink the given member reference (metadata token provider). + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Relink the given type reference. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Relink the given method reference. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Relink the given callsite. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Relink the given field reference. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Relink the given parameter definition. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Clone the given parameter definition. + + The original parameter definition. + A clone of the original parameter definition. + + + + Relink the given custom attribute. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Clone the given custom attribute. + + The original custom attribute. + A clone of the original custom attribute. + + + + Relink the given generic parameter reference. + + The reference to relink. + The relinker to use during the relinking process. + The generic context provided to relink generic references. + A relinked reference. + + + + Clone the given generic parameter. + + The original generic parameter. + A clone of the original generic parameter. + + + + Get the managed size of a given type. This matches an IL-level sizeof(t), even if it cannot be determined normally in C#. + Note that sizeof(t) != Marshal.SizeOf(t), f.e. when t is char. + + The type to get the size from. + The managed type size. + + + + Get a type which matches what the method should receive via ldarg.0 + + The method to obtain the "this" parameter type from. + The "this" parameter type. + + + + Get a native function pointer for a given method. This matches an IL-level ldftn. + + + The result of ldftn doesn't always match that of MethodHandle.GetFunctionPointer(). + For example, ldftn doesn't JIT-compile the method on mono, which thus keeps the class constructor untouched. + And on .NET, struct overrides (f.e. ToString) have got multiple entry points pointing towards the same code. + + The method to get a native function pointer for. + The native function pointer. + + + + A variant of ILGenerator which uses Mono.Cecil under the hood. + + + + + The underlying Mono.Cecil.Cil.ILProcessor. + + + + + Abstract version of System.Reflection.Emit.ILGenerator. See for proper documentation. + + + + + Get a "real" ILGenerator for this ILGeneratorShim. + + A "real" ILGenerator. + + + + Get the proxy type for a given ILGeneratorShim type. The proxy type implements ILGenerator. + + The ILGeneratorShim type. + The "real" ILGenerator type. + + + + Get the proxy type for a given ILGeneratorShim type. The proxy type implements ILGenerator. + + The ILGeneratorShim type. + The "real" ILGenerator type. + + + + Get the non-generic proxy type implementing ILGenerator. + + The "real" ILGenerator type, non-generic. + + + + A DynamicMethodDefinition "generator", responsible for generating a runtime MethodInfo from a DMD MethodDefinition. + + + + + + A DMDGenerator implementation using Mono.Cecil to build an in-memory assembly. + + + + + Fill the DynamicMethod with a stub. + + + + + Fill the DynamicMethod with a stub. + + + + + Emit a reference to an arbitrary object. Note that the references "leak." + + + + + Emit a reference to an arbitrary object. Note that the references "leak." + + + + + Emit a reference to an arbitrary object. Note that the references "leak." + + + + + Emit a reference to an arbitrary object. Note that the references "leak." + + + + + Allows you to remap library paths / names and specify loading flags. Useful for cross-platform compatibility. Applies only to DynDll. + + + + + Open a given library and get its handle. + + The library name. + Whether to skip using the mapping or not. + Any optional platform-specific flags. + The library handle. + + + + Try to open a given library and get its handle. + + The library name. + The library handle, or null if it failed loading. + Whether to skip using the mapping or not. + Any optional platform-specific flags. + True if the handle was obtained, false otherwise. + + + + Release a library handle obtained via OpenLibrary. Don't release the result of OpenLibrary(null)! + + The library handle. + + + + Get a function pointer for a function in the given library. + + The library handle. + The function name. + The function pointer. + + + + Get a function pointer for a function in the given library. + + The library handle. + The function name. + The function pointer, or null if it wasn't found. + True if the function pointer was obtained, false otherwise. + + + + Extension method wrapping Marshal.GetDelegateForFunctionPointer + + + + + Fill all static delegate fields with the DynDllImport attribute. + Call this early on in the static constructor. + + The type containing the DynDllImport delegate fields. + Any optional mappings similar to the static mappings. + + + + Fill all instance delegate fields with the DynDllImport attribute. + Call this early on in the constructor. + + An instance of a type containing the DynDllImport delegate fields. + Any optional mappings similar to the static mappings. + + + + Similar to DllImport, but requires you to run typeof(DeclaringType).ResolveDynDllImports(); + + + + + The library or library alias to use. + + + + + A list of possible entrypoints that the function can be resolved to. Implicitly includes the field name and delegate name. + + + + The library or library alias to use. + A list of possible entrypoints that the function can be resolved to. Implicitly includes the field name and delegate name. + + + + A mapping entry, to be used by . + + + + + The name as which the library will be resolved as. Useful to remap libraries or to provide full paths. + + + + + Platform-dependent loading flags. + + + + The name as which the library will be resolved as. Useful to remap libraries or to provide full paths. + Platform-dependent loading flags. + + + + The relinker callback delegate type. + + The reference (metadata token provider) to relink. + The generic context provided to relink generic references. + A relinked reference. + + + + Generic platform enum. + + + + + Bit applied to all OSes (Unknown, Windows, MacOS, ...). + + + + + On demand 64-bit platform bit. + + + + + Applied to all NT and NT-oid platforms (Windows). + + + + + Applied to all Unix and Unix-oid platforms (macOS, Linux, ...). + + + + + On demand ARM platform bit. + + + + + Unknown OS. + + + + + Windows, using the NT kernel. + + + + + macOS, using the Darwin kernel. + + + + + Linux. + + + + + Android, using the Linux kernel. + + + + + iOS, sharing components with macOS. + + + + diff --git a/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/BepInEx.MonoMod.HookGenPatcher.dll b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/BepInEx.MonoMod.HookGenPatcher.dll new file mode 100644 index 0000000..10267dc Binary files /dev/null and b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/BepInEx.MonoMod.HookGenPatcher.dll differ diff --git a/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.RuntimeDetour.HookGen.dll b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.RuntimeDetour.HookGen.dll new file mode 100644 index 0000000..736505a Binary files /dev/null and b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.RuntimeDetour.HookGen.dll differ diff --git a/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.dll b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.dll new file mode 100644 index 0000000..eaaf832 Binary files /dev/null and b/ValheimClient/BepInEx/patchers/BepInEx.MonoMod.HookGenPatcher/MonoMod.dll differ diff --git a/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/English/translations.json b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/English/translations.json new file mode 100644 index 0000000..3ff1ec7 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/English/translations.json @@ -0,0 +1,38 @@ +{ + "item_atoarrow_stone": "Stone Arrow", + "item_atoarrow_stone_description": "A crude arrow with a blunted stone tip. Good for bonking something from a distance.", + "item_atoarrow_core": "Blunted Arrow", + "item_atoarrow_core_description": "An Arrow fixed with a blunt Bronze tip. Great for bashing in a skull at a distance.", + "item_atoarrow_heavy_core": "Heavy Blunted Arrow", + "item_atoarrow_heavy_core_description": "A sturdy and well made arrow. Much harder to make but does much more damage.", + "item_atoarrow_bone": "Bone Arrow", + "item_atoarrow_bone_description": "An arrow made of several bone fragments. This unique arrow slashes and tears the flesh of your enemies.", + "item_atoarrow_heavy_bone": "Heavy Bone Arrow", + "item_atoarrow_heavy_bone_description": "An arrow made of several bone fragments. This unique arrow slashes and tears the flesh of your enemies.", + "item_atoarrow_heavy_flint": "Heavy Flint Arrow", + "item_atoarrow_heavy_flint_description": "A sturdy and well made arrow. Much harder to make but does much more damage.", + "item_arrow_heavyobsidian": "Heavy Obsidian Arrow", + "item_arrow_obsidian_heavy_description": "An heavy arrow made with a hard Obsidian tip.", + "item_arrow_heavyneedle": "Heavy Needle Arrow", + "item_arrow_heavyneedle_description": "An heavier and harder hitting Needle Arrow.", + "item_arrow_obsidianfire": "Obsidian Fire Arrow", + "item_arrow_obsidianfire_description": "An powerful arrow that will ignite your foes.", + "item_arrow_heavyfire": "Heavy Fire Arrow", + "item_arrow_heavyfire_description": "A sturdy and well made arrow. Much harder to make but does much more damage.", + "item_atoarrow_bigfire": "Exploding Fire Arrow", + "item_atoarrow_bigfire_description": "An arrow loaded to the brim with explosives. This rare arrow is great for setting everything on fire!", + "item_arrow_heavy_frost": "Heavy Frost Arrow", + "item_arrow_frost_heav_description": "A sturdy and well made arrow. Much harder to make but does much more damage.", + "item_atoarrow_bigice": "Exploding Ice Arrow", + "item_atoarrow_bigice_description": "An arrow loaded to the brim with all sorts of Magical cold objects found from the mountains. This rare arrow is great for freezing multiple foes!", + "item_arrow_heavy_poison": "Heavy Poison Arrow", + "item_arrow_poison_heavy_description": "A sturdy and well made arrow. Much harder to make but does much more damage.", + "item_atoarrow_aoepoison": "Exploding Poison Arrow", + "item_atoarrow_aoepoison_description": "An arrow loaded to the brim with Poison and Oozes. This rare arrow is great for poisoning a large group of enemies.", + "item_ato_firebomb": "Fire Bomb", + "item_ato_firebomb_description": "RND request from the Dwarf Hugo.", + "item_ato_icebomb": "Ice Bomb", + "item_ato_icebomb_description": "RND request from the Dwarf Hugo.", + "item_xbow": "Crossbow", + "item_xbow_description": "Ugly XBow" +} diff --git a/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/Russian/translations.json b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/Russian/translations.json new file mode 100644 index 0000000..e297dc2 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/Assets/Translations/Russian/translations.json @@ -0,0 +1,38 @@ +{ + "item_atoarrow_stone": "Стрела Каменная", + "item_atoarrow_stone_description": "Грубая стрела с затупленным каменным наконечником. Хорош для того, чтобы разностить в щепки что-то на расстоянии.", + "item_atoarrow_core": "Стрела Затупленная бронзовая", + "item_atoarrow_core_description": "Стрела с тупым бронзовым наконечником. Отлично подходит для удара по черепу на расстоянии.", + "item_atoarrow_heavy_core": "Тяжелая Тупая стрела", + "item_atoarrow_heavy_core_description": "Крепкая и хорошо сделанная стрела. Гораздо труднее сделать, но наносит гораздо больший урон.", + "item_atoarrow_bone": "Стрела Костяная", + "item_atoarrow_bone_description": "Стрела, сделанная из нескольких костяных фрагментов. Эта уникальная стрела режет и разрывает плоть ваших врагов.", + "item_atoarrow_heavy_bone": "Тяжелая Костяная стрела", + "item_atoarrow_heavy_bone_description": "Стрела, сделанная из нескольких костяных фрагментов. Эта уникальная стрела режет и разрывает плоть ваших врагов.", + "item_atoarrow_heavy_flint": "Тяжелая Кремневая стрела", + "item_atoarrow_heavy_flint_description": "Крепкая и хорошо сделанная стрела. Гораздо труднее сделать, но наносит гораздо больший урон.", + "item_arrow_heavyobsidian": "Тяжелая обсидиановая стрела", + "item_arrow_obsidian_heavy_description": "Тяжелая стрела, сделанная с твердым обсидиановым наконечником", + "item_arrow_heavyneedle": "Тяжелая игольчатая стрела", + "item_arrow_heavyneedle_description": "Более тяжелая и тяжелая игольная стрела", + "item_arrow_obsidianfire": "Стрела Огненная из Обсидиана", + "item_arrow_obsidianfire_description": "Мощная стрела, которая воспламенит ваших врагов.", + "item_arrow_heavyfire": "Тяжелая огненная стрела", + "item_arrow_heavyfire_description": "Крепкая и хорошо сделанная стрела. Гораздо труднее сделать, но наносит гораздо больший урон.", + "item_atoarrow_bigfire": "Стрела Огненная взрывающаяся", + "item_atoarrow_bigfire_description": "Стрела, до краев заряженная взрывчаткой. Эта редкая стрела отлично подходит для того, чтобы поджечь все вокруг!", + "item_arrow_heavy_frost": "Тяжелая ледяная стрела", + "item_arrow_frost_heav_description": "Крепкая и хорошо сделанная стрела. Гораздо труднее сделать, но наносит гораздо больший урон.", + "item_atoarrow_bigice": "Стрела Ледяная взрывающаяся", + "item_atoarrow_bigice_description": "Стрела, до краев наполненная всевозможными магическими холодными предметами, найденными в горах. Эта редкая стрела отлично подходит для замораживания нескольких врагов!", + "item_arrow_heavy_poison": "Тяжелая ядовитая стрела", + "item_arrow_poison_heavy_description": "Крепкая и хорошо сделанная стрела. Гораздо труднее сделать, но наносит гораздо больший урон.", + "item_atoarrow_aoepoison": "Стрела Ядовитая взрывающаяся", + "item_atoarrow_aoepoison_description": "Стрела, до краев наполненная ядом и сочащаяся. Эта редкая стрела отлично подходит для отравления большой группы врагов.", + "item_ato_firebomb": "Бомба Огненная", + "item_ato_firebomb_description": "Изобретение от гнома Хьюго.", + "item_ato_icebomb": "Бомба Леденая", + "item_ato_icebomb_description": "Изобретение от гнома Хьюго.", + "item_xbow": "Арбалет", + "item_xbow_description": "Арбалет для любителя" +} diff --git a/ValheimClient/BepInEx/plugins/AtosArrowsJVL/AtosArrowsJVL.dll b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/AtosArrowsJVL.dll new file mode 100644 index 0000000..d160f0e Binary files /dev/null and b/ValheimClient/BepInEx/plugins/AtosArrowsJVL/AtosArrowsJVL.dll differ diff --git a/ValheimClient/BepInEx/plugins/Clutter/Assets/Translations/English/Clutter.json b/ValheimClient/BepInEx/plugins/Clutter/Assets/Translations/English/Clutter.json new file mode 100644 index 0000000..3ddb3fb --- /dev/null +++ b/ValheimClient/BepInEx/plugins/Clutter/Assets/Translations/English/Clutter.json @@ -0,0 +1,192 @@ +{ + "PlumgaClutterTool":"Clutter Bucket", + "PlumgaClutterTool_description":"A bucket full of clutter. Use this to clutter up your place!", + + "custompiece_itemstand_horizontal_reduced":"Item Stand - Horizontal", + "custompiece_itemstand_horizontal_reduced_description":"A smaller, less visible item stand.", + + "custompiece_itemstand_vertical_reduced":"Item Stand - Vertical", + "custompiece_itemstand_vertical_reduced_description":"A smaller, less visible item stand.", + + "custompiece_itemstand_spear":"Item Stand - Spear", + "custompiece_itemstand_spear_description":"A great way to show off the severed heads of your enemies.", + + "custompiece_itemstand_stake":"Item Stand - Stake", + "custompiece_itemstand_stake_description":"A great way to show off the severed heads of your enemies.", + + "custompiece_barnowl":"Owl Sculpture", + "custompiece_brownpelican":"Pelican Sculpture", + "custompiece_deer":"Deer Sculpture", + "custompiece_elk":"Elk Sculpture", + "custompiece_flyingcrow":"Flying Crow Sculpture", + "custompiece_heron":"Heron Sculpture", + "custompiece_wildhorse":"Horse Sculpture", + "custompiece_wolf":"Wolf Sculpture", + + "custompiece_birdhouse":"Birdhouse", + "custompiece_bucket":"Small Bucket", + "custompiece_bucketbig":"Large Bucket", + "custompiece_mortarandpestle":"Mortar and Pestle", + "custompiece_pan":"Pan", + "custompiece_picnicbasket":"Picnic Basket", + "custompiece_picnicbasketchest":"Picnic Basket", + "custompiece_pot":"Pot", + "custompiece_rollingpin":"Rolling Pin", + "custompiece_soap":"Soap", + "custompiece_tub":"Empty Tub", + "custompiece_tubfull":"Full Tub", + + "custompiece_weaponrack":"Weapon Rack", + "custompiece_weaponrack_description":"Empty rack for displaying your weapons. Use with the small item stands for the best effect.", + + "custompiece_weaponrack_full":"Weapon Rack - Full", + "custompiece_weaponrack_full_description":"A pre-filled weapon rack. The weapons are just for show. They are attached to the rack and cannot be removed.", + + "custompiece_winebottle":"Wine Bottle", + "custompiece_winerack":"Wine Rack", + + "custompiece_rug_deer_tablecloth":"Deer Hide Tablecloth", + "custompiece_rug_fur_tablecloth":"Lox Pelt Tablecloth", + "custompiece_rug_wolf_tablecloth":"Wolf Pelt Tablecloth", + + "custompiece_dunmr_altar":"Altar", + "custompiece_dunmr_altarwcandle":"Altar with Candle", + "custompiece_dunmr_bookblue":"Blue Book - Vertical", + "custompiece_dunmr_bookblue_horiz":"Blue Book - Horizontal", + "custompiece_dunmr_bookred":"Red Book - Vertical", + "custompiece_dunmr_bookred_horiz":"Red Book - Horizontal", + "custompiece_dunmr_bowl":"Wooden Bowl", + "custompiece_dunmr_bowlbig":"Large Wooden Bowl", + "custompiece_dunmr_candle":"Candle - Unlit", + "custompiece_dunmr_candlelit":"Candle", + + "custompiece_candlebottle":"Candle in a Bottle", + "custompiece_candlelantern":"Candle Lantern", + "custompiece_candlelit2":"Candle", + "custompiece_candlesnake":"Candle in a Snake Holder", + + "custompiece_dunmr_comb":"Comb", + "custompiece_dunmr_mug1":"Mug", + "custompiece_dunmr_mug2":"Mug", + "custompiece_dunmr_plate":"Wooden Plate", + "custompiece_dunmr_platebig":"Large Wooden Plate", + "custompiece_dunmr_shelf":"Shelf", + "custompiece_dunmr_shelfwithbooks":"Bookshelf", + "custompiece_dunmr_spoon":"Wooden Spoon", + + "custompiece_basket":"Basket", + "custompiece_bonepile":"Pile of Bones", + "custompiece_bones1":"Bones", + "custompiece_bones2":"Bones", + "custompiece_bones3":"Bones", + "custompiece_bones4":"Bones", + "custompiece_skull":"Skull", + + "custompiece_gravestone":"Gravestone", + "custompiece_gravestone_description":"Write a custom inscription by interacting with the gravestone.", + + "custompiece_diary":"Diary", + "custompiece_diary_description":"Like a book, but you can write in it!", + + "custompiece_diarypage":"Diary Page", + "custompiece_diarypage_description":"A piece of paper that you can write on.", + + "custompiece_fonduepot":"Fondue Pot", + "custompiece_pictureframe1":"Painting", + "custompiece_pictureframe2":"Painting", + "custompiece_pictureframe3":"Painting", + "custompiece_pictureframe4":"Painting", + "custompiece_pipe":"Pipe", + "custompiece_quillandink":"Quill and Ink", + "custompiece_quillandparchment":"Quill and Parchment", + "custompiece_cuckooclock":"Cuckoo Clock", + "custompiece_roundtable":"Round Table", + "custompiece_roundtablewithcloth":"Round Table with Tablecloth", + "custompiece_scroll1":"Scroll", + "custompiece_scroll2":"Scroll", + "custompiece_scroll3":"Scroll", + "custompiece_scroll4":"Scroll", + "custompiece_scroll5":"Scroll", + "custompiece_fancychest":"Fancy Wood Chest", + "custompiece_stonechest":"Stone Chest", + "custompiece_straw":"Straw Bundle", + + "custompiece_coolchair":"Fancy Wood Chair", + "custompiece_stool":"Round Stool", + "custompiece_swing":"Swing" + + "custompiece_statuecorgi":"Corgi Statue", + "custompiece_statuedeer":"Deer Statue", + "custompiece_statueevil_large":"Evil Statue - Large" + "custompiece_statueevil_small":"Evil Statue - Small", + "custompiece_statuehare":"Hare Statue", + "custompiece_statueseed":"Seed Statue", + + "custompiece_barberpole":"Barber Shop Pole", + + + "custompiece_booksecretstorage":"Stash Book", + "custompiece_booksecretstorage_description":"A book with a real secret.", + "custompiece_booksecretstoragechest":"Stash Book", + + "custompiece_booksecretstorage_public":"Stash Book - Public", + "custompiece_booksecretstorage_public_description":"A book with a real secret. This version can be opened by anyone, even in a ward.", + "custompiece_booksecretstorage_publicchest":"Loot Book", + + "custompiece_fancychest_public":"Fancy Wood Chest - Public", + "custompiece_fancychest_public_description":"This chest can be opened by anyone, even in a ward.", + "custompiece_fancychest_publicchest":"Loot Box", + + "custompiece_stonechest_public":"Stone Chest - Public", + "custompiece_stonechest_public_description":"This chest can be opened by anyone, even in a ward.", + "custompiece_stonechest_publicchest":"Loot Box", + + "custompiece_horizontalweb":"Horizontal Spider Web", + "custompiece_tunnelweb":"Tunnel Spider Web", + "custompiece_verticalweb":"Vertical Spider Web", + + "custompiece_journal":"Journal", + "custompiece_journal_description":"Like a book, but you can write in it!", + + "custompiece_openbook":"Open Book", + "custompiece_poetrybook1H":"Red Poetry Book - Horizontal", + "custompiece_poetrybook1V":"Red Poetry Book - Vertical", + "custompiece_poetrybook2H":"Green Poetry Book - Horizontal", + "custompiece_poetrybook2V":"Green Poetry Book - Vertical", + "custompiece_stackedpoetrybooks1":"Stacked Poetry Books - Red", + "custompiece_stackedpoetrybooks2":"Stacked Poetry Books - Green", + "custompiece_globe1":"Globe", + "custompiece_globe2":"Globe", + "custompiece_map1":"Old Map", + "custompiece_map2":"Rolled Up Map", + "custompiece_map3":"Open Map", + "custompiece_dragonstatuesmall":"Golden Dragon Statue - Small", + "custompiece_dragonstatuelarge":"Golden Dragon Statue - Large", + "custompiece_blackdragonstatuesmall":"Black Dragon Statue - Small", + "custompiece_blackdragonstatuelarge":"Black Dragon Statue - Large", + + "custompiece_dunmr_shelfwithbooksdouble":"Double Bookshelf", + "custompiece_swingingswing":"Swinging Swing" + + + "custompiece_largesign":"Large Sign", + + "custompiece_celticidol1":"Celtic Idol 1", + "custompiece_celticidol1small":"Celtic Idol 1 - Small", + "custompiece_celticidol2":"Celtic Idol 2", + "custompiece_celticidol3":"Celtic Idol 3", + "custompiece_celticidol4":"Celtic Idol 4", + "custompiece_celticidol5":"Celtic Idol 5", + "custompiece_celticidol6":"Celtic Idol 6", + "custompiece_celticidol7":"Celtic Idol 7", + "custompiece_celticidol8":"Celtic Idol 8", + "custompiece_celticidol9":"Celtic Idol 9", + "custompiece_celticidol10":"Celtic Idol 10", + "custompiece_celticidol11":"Celtic Idol 11", + "custompiece_celticidol12":"Celtic Idol 12", + + "custompiece_lokistatue":"Loki Statue", + "custompiece_odinstatue":"Odin Statue" + + +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/Clutter/Clutter.dll b/ValheimClient/BepInEx/plugins/Clutter/Clutter.dll new file mode 100644 index 0000000..487c56b Binary files /dev/null and b/ValheimClient/BepInEx/plugins/Clutter/Clutter.dll differ diff --git a/ValheimClient/BepInEx/plugins/ConfigurationManager/ConfigurationManager.dll b/ValheimClient/BepInEx/plugins/ConfigurationManager/ConfigurationManager.dll new file mode 100644 index 0000000..278c0ce Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ConfigurationManager/ConfigurationManager.dll differ diff --git a/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/CreatureLevelControl.dll b/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/CreatureLevelControl.dll new file mode 100644 index 0000000..390b327 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/CreatureLevelControl.dll differ diff --git a/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/Default.yml b/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/Default.yml new file mode 100644 index 0000000..067e8d7 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/CreatureLevelAndLootControl/Default.yml @@ -0,0 +1,256 @@ +creatureGender: + default: n + +genderedCreatureTranslations: + n: '[{effect} ][{infusion}-Infused ]{name}[ the {affix}]' + +genderedTranslations: + +translations: + Aggressive: Aggressive + Armored: Armored + Curious: Curious + Quick: Quick + Regenerating: Regenerating + Splitting: Splitting + + Fire: Fire + Frost: Frost + Lightning: Lightning + Chaos: Chaos + Spirit: Spirit + Poison: Poison + + Reflective: Reflective + Shielded: Shielded + Mending: Mending + Summoner: Summoner + Elementalist: Elementalist + Enraged: Enraged + Twin: Twin + + CreatureSectorLevelIncrease: The creatures near {player} grow in power to avenge the death of their kin. + MinimapSectorLevel: 'Sector Level: {level}' + ConfigEditorSave: Save and Apply + ConfigEditorApplyNoSave: Apply without Saving + ConfigEditorDiscard: Discard and Close + Edit Creature YAML config: Edit Creature YAML config + Edit Item YAML config: Edit Item YAML config + SummonerEikthyr: '{boss} the Summoner summons {number} Greydwarves to their aid' + SummonerElder: '{boss} the Summoner summons a Greydwarf Brute to their aid' + SummonerBonemass: '{boss} the Summoner summons {number} Draugr Elite to their aid' + SummonerModer: '{boss} the Summoner summons {number} Drakes to their aid' + SummonerYagluth: '{boss} the Summoner summons a Fuling Berserker to their aid' + +enumTranslations: + Toggle: + On: On + Off: Off + Difficulty: + Custom: Custom + Very_easy: Very easy + Easy: Easy + Medium: Medium + Hard: Hard + Very_hard: Very hard + Insane: Insane + CreatureSectorAnnouncementScope: + Local: Local + Global: Global + Off: Off + LootSystem: + Vanilla: Vanilla + Linear: Linear + CalculateChance: Calculate chance + CalculateAmount: Calculate amount + VisualLevelIndicator: + Off: Off + On: On + BossesOff: Off for Bosses + CreaturesOff: Off for Creatures + AllowedConsoleCommands: + CreatureCommands: Creature Commands + InformationCommands: Information Commands + None: None + VisualExtraEffectIndicator: + Color: Color + Text: Text + Both: Color and Text + DifficultySecondFactor: + None: None + Age_of_world: Use Age of World + Distance: Use Distance from Spawn + BossesKilled: Use Number of Bosses killed + SpawnLevel: + None: None + One: One + Two: Two + Three: Three + Four: Four + Five: Five + CreatureSectorWorldLevel: + Disabled: Disabled + None: None + One: One + Two: Two + Three: Three + Four: Four + Five: Five + +settingGroups: + General: General + Creatures: Creatures + Loot: Loot + Bosses: Bosses + Distance from Spawn: Distance from Spawn + Age of world: Age of world + Custom level chances: Custom level chances + Creature Affix chances: Creature Affix chances + Creature Infusion chances: Creature Infusion chances + Boss Affix chances: Boss Affix chances + Boss Affix power: Boss Affix power + +settings: + Lock Configuration: + desc: The configuration is locked and may not be changed by clients. Only active for servers. + Use creature configuration yaml: + desc: Reads the CreatureConfig.yml file if present. Configuration done via the YAML file will override the same settings done via the default configuration file. For everything not configured in the YAML file, the default configuration file will still be used. + Use item configuration yaml: + desc: Reads the ItemConfig.yml file if present. Configuration done via the YAML file will override the same settings done via the default configuration file. For everything not configured in the YAML file, the default configuration file will still be used. + nexusID: + desc: Nexus mod ID for updates. + HP increase per player in multiplayer (percentage): + desc: Health increase per player in multiplayer in percent. + DMG increase per player in multiplayer (percentage): + desc: Damage increase per player in multiplayer in percent. + Minimum player count for multiplayer scaling: + desc: Sets the minimum player count for multiplayer games. + Maximum player count for multiplayer scaling: + desc: Sets the maximum player count for multiplayer games. + Player count to be added to the actual player count for multiplayer scaling (0 is disabled): + desc: Adds the defined number of players to the actual player count for multiplayer scaling. + Multiplayer scaling per player range (0 is unlimited): + desc: Range that other players have to be in in order to count towards the multiplayer scaling. Has no effect, if the fixed player count is set to something else than 0. + Nameplate display on mouseover range: + desc: Maximum distance for the nameplate to be shown on mouseover. + Visual indicators for level: + desc: Can be used to turn off visual indicators for the targets level, e.g. their stars or color. + Console commands allowed to be used by users on a server: + desc: Sets the CLLC commands that users on a server can use. Server admins can always use all commands. Has no effect, if the configuration is unlocked (for obvious reasons). + Detailed damage log: + desc: Enables detailed damage logging for each hit. + Difficulty: + desc: Sets the level up chances of all creatures. + Second factor: + desc: Change the second factor used to calculate the level up chances. + Display circles on the map for distance from spawn option: + desc: Display circles on the map for distance from spawn option. + Creatures can spawn with special effects: + desc: Creatures can spawn with special effects, making them a lot more difficult to kill. + Visual indicator for special effects: + desc: Changes the way the visual indicator for creatures extra effects is displayed. + Creatures can spawn with elemental infusions: + desc: Creatures can spawn with elemental infusions, making them a lot more difficult to kill. + Add the infusion to the creatures name: + desc: Creatures with elemental infusions have the elemental infusion added to their name. + Brightness for the elemental infusion visual indicator (percentage): + desc: Sets the brightness for the flames visual effect of elemental infused creatures. + Minimum stars: + desc: Sets the minimum stars for all creatures. Does not affect custom difficulty. + Maximum stars: + desc: Sets the maximum stars for all creatures. Does not affect custom difficulty. + Time until creatures in dungeons respawn in minutes (0 means disabled, 20 is one ingame day): + desc: Time until creatures in dungeons respawn in minutes (0 = disabled, 20 = one ingame day). + Time until creatures in camps respawn in minutes (0 means disabled, 20 is one ingame day): + desc: Time until creatures in camps respawn in minutes (0 = disabled, 20 = one ingame day). + Creature size increase per star (percentage): + desc: Increases the size of creatures per star. + Increase creature size even in dungeons (where they might get stuck): + desc: If creature size will be increased in dungeons as well, where they might get stuck if they get too big. + Base health for creatures (percentage): + desc: Base health for creatures in percentage. + Health gained per star for creatures (percentage): + desc: Health gained per star for creatures in percentage. + Base damage for creatures (percentage): + desc: Base damage for creatures in percentage. + Damage gained per star for creatures (percentage): + desc: Damage gained per star for creatures in percentage. + Base movement speed for creatures (percentage): + desc: Base movement speed for creatures in percentage. + Base attack speed for creatures (percentage): + desc: Base attack speed for creatures in percentage. + World level required to enable creature sectors: + desc: Minimum world level for creature sectors to become active. + Time until each creature sector is reset (0 is no reset): + desc: Time that needs to pass before a creature sectors bonus level is reset in minutes (0 = disabled, 20 = one ingame day). + Kills required in a sector for each bonus level: + desc: Creature kills required in the same sector for creatures to gain bonus level. + Sets the scope for creature sector level up announcements: + desc: Sets the scope for the creature sector level up announcements. + Duration of the map ping for creature sector level ups in seconds (0 is disabled): + desc: Pings the map on creature sector level ups. Time is in seconds. 0 means disabled. + Displays the current creature sector level on the minimap: + desc: Displays the current creature sector level on the minimap. + Loot system to be used: + desc: | + Sets the loot system to be used. + Vanilla disables the loot system from this mod completely. + Linear: Dropped items are multiplied with the creatures level. + Calculate chance: A boar has a 50% chance to drop 2 meat, it will either drop 2 or none. + Calculate amount: A boar has a 50% chance to drop 2 meat, it will always drop 1. + Chance for additional loot per star for creatures: + desc: Chance for additional loot per star for creatures. + Chance for additional loot per star for bosses: + desc: Chance for additional loot per star for bosses. + Multiplier for dropped creature items: + desc: Multiplies the items dropped by all creatures. + Multiplier for dropped boss items: + desc: Multiplies the items dropped by all bosses. + Creatures can drop multiple trophies: + desc: If creatures can drop multiple trophies. + Bosses can drop multiple trophies: + desc: If bosses can drop multiple trophies. + Drop multiplier for passive creatures (like Seagulls and Crows): + desc: Multiplies the items dropped by all passive creatures like Crows and Seagulls. + Time until items in dungeons respawn in minutes (0 means disabled, 20 is one ingame day): + desc: Time until items in dungeons respawn in minutes (0 = disabled, 20 = one ingame day). + Bosses can spawn with special effects: + desc: Bosses can spawn with special effects, making them a lot more difficult to kill. + Use creature level chances for bosses: + desc: On means that the level up chances for creatures are used for bosses as well. Otherwise, the custom level chances for bosses will be used. + Star chances for bosses (percentages): + desc: Level chances for bosses. Start with 1 star, from left to right, as many stars as you want. 0 star chance will be automatically calculated from the remainder. + Boss size increase per star (percentage): + desc: Increases the size of bosses per star. + Health gained per star for bosses (percentage): + desc: Health gained per star for bosses in percentage. + Damage gained per star for bosses (percentage): + desc: Damage gained per star for bosses in percentage. + World level {level} start (days): + desc: Days needed to pass before your world gets to world level {level}. + Distance from spawn for level {level} start: + desc: Distance from spawn for level {level} start. Radius for a default world is 10500. + Chances for stars at world level {level} (percent): + desc: 'Chances for stars at world level {level} in percent. As many stars as you want from left to right, comma separated. Start with 1 star. 0 star chance will be automatically calculated using the remainder. Example: 30, 5.5, 2.25, 5, 10, 10, 3' + Chance for {effect} effect to spawn (percentage): + desc: Chance for {effect} effect creatures to spawn (percentage). + Chance for {infusionDescription} infusion to spawn (percentage): + desc: Chance for {infusionDescription} infusion creatures to spawn (percentage). + Multiplier for infusion chances per star: + desc: Multiplier applied to base chances for infusions to spawn according to the number of stars of the creature. Chances for every amount of stars, from left to right, comma separated. Start with 0 stars. Defaults to 1. + Chance for {affix} affix to spawn (percentage): + desc: Chance for {affix} affix bosses to spawn (percentage). + Reflective base damage: + desc: Base damage per hit for the Reflective boss affix. + Shielded damage reduction (percentage): + desc: Damage reduction for arrows in percent for the Shielded boss affix. + Mending healing factor: + desc: Multiplier for the Mending boss affix. + Number of summons for Summoners: + desc: The number of summoning events over the course of the fight for the Summoner boss affix. + Elementalist damage increase (percentage): + desc: Elemental damage increase for Elementalist boss affix. + Enraged damage increase (percentage): + desc: Phyiscal damage increase for Enraged boss affix. + Twin damage and health (percentage): + desc: Health and damage for Twin boss affix. diff --git a/ValheimClient/BepInEx/plugins/DiscardInventoryItem/DiscardInventoryItem.dll b/ValheimClient/BepInEx/plugins/DiscardInventoryItem/DiscardInventoryItem.dll new file mode 100644 index 0000000..828e080 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/DiscardInventoryItem/DiscardInventoryItem.dll differ diff --git a/ValheimClient/BepInEx/plugins/EasyTranslate/ch.easy.develope.easy.translate.dll b/ValheimClient/BepInEx/plugins/EasyTranslate/ch.easy.develope.easy.translate.dll new file mode 100644 index 0000000..f782479 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/EasyTranslate/ch.easy.develope.easy.translate.dll differ diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/EpicLoot.dll b/ValheimClient/BepInEx/plugins/EpicLoot/EpicLoot.dll new file mode 100644 index 0000000..b35e352 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/EpicLoot/EpicLoot.dll differ diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/abilities.json b/ValheimClient/BepInEx/plugins/EpicLoot/abilities.json new file mode 100644 index 0000000..7805c2b --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/abilities.json @@ -0,0 +1,26 @@ +{ + "Abilities": [ + { + "ID" : "Bulwark", + "IconAsset": "BulwarkIcon", + "ActivationMode": "Activated", + "Cooldown" : 60, + "Action": "StatusEffect", + "ActionParams": [ "BulwarkStatusEffect" ] + }, + { + "ID" : "Undying", + "IconAsset": "UndyingIcon", + "ActivationMode": "Triggerable", + "Cooldown" : 1200 + }, + { + "ID" : "Berserker", + "IconAsset": "BerserkerIcon", + "ActivationMode": "Activated", + "Cooldown" : 180, + "Action": "StatusEffect", + "ActionParams": [ "BerserkerStatusEffect" ] + } + ] +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/adventuredata.json b/ValheimClient/BepInEx/plugins/EpicLoot/adventuredata.json new file mode 100644 index 0000000..d90df13 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/adventuredata.json @@ -0,0 +1,578 @@ +{ + "FulingCoinDropScale": 1.0, + "SecretStash": { + "RefreshInterval": 1, + "Materials": [ + { "Item": "ShardMagic", "CoinsCost": 15 }, + { "Item": "DustMagic", "CoinsCost": 10 }, + { "Item": "ReagentMagic", "CoinsCost": 10 }, + { "Item": "EssenceMagic", "CoinsCost": 10 }, + { "Item": "ShardRare", "CoinsCost": 50 }, + { "Item": "DustRare", "CoinsCost": 25 }, + { "Item": "ReagentRare", "CoinsCost": 25 }, + { "Item": "EssenceRare", "CoinsCost": 25 }, + { "Item": "ShardEpic", "CoinsCost": 250 }, + { "Item": "DustEpic", "CoinsCost": 125 }, + { "Item": "ReagentEpic", "CoinsCost": 125 }, + { "Item": "EssenceEpic", "CoinsCost": 125 }, + { "Item": "ShardLegendary", "CoinsCost": 1000 }, + { "Item": "DustLegendary", "CoinsCost": 500 }, + { "Item": "ReagentLegendary", "CoinsCost": 500 }, + { "Item": "EssenceLegendary", "CoinsCost": 500 }, + { "Item": "RunestoneLegendary","CoinsCost": 2500 } + + ], + "RollsPerRarity": [1, 1, 1, 1], + "RandomItems": [ + ], + "RandomItemsCount": 0, + "OtherItems": [ + { "Item": "Andvaranaut", "CoinsCost": 2000 } + ] + }, + "Gamble": { + "RefreshInterval": 1, + "Gambles": [ + "AtgeirBlackmetal", + "AxeBlackMetal", + "Battleaxe", + "MaceNeedle", + "KnifeBlackMetal", + "PickaxeIron", + "SledgeIron", + "SpearWolfFang", + "SwordBlackmetal", + "BowDraugrFang", + "ShieldBlackmetal", + "ShieldBlackmetalTower", + "ArmorPaddedCuirass", + "ArmorPaddedGreaves", + "HelmetPadded", + "CapeLox" + ], + "GamblesCount": 4, + "GambleRarityChance": [ 1, 59, 20, 15, 5 ], + "GambleRarityChanceByRarity" : [ + [ 0, 90, 9, 1, 0 ], + [ 0, 5, 60, 30, 5 ], + [ 0, 0, 0, 85, 15 ], + [ 0, 0, 0, 50, 50 ] + ], + "ForestTokenGamblesCount": 2, + "ForestTokenGambleCoinsCost": 0.1, + "ForestTokenGambleCostMin": 15, + "ForestTokenGambleCostMax": 100, + "IronBountyGamblesCount": 2, + "IronBountyGambleCoinsCost": 0.2, + "IronBountyGambleCost": 25, + "GoldBountyGamblesCount": 1, + "GoldBountyGambleCoinsCost": 0.2, + "GoldBountyGambleCost": 50, + "GambleCosts": [ + { "Item": "AtgeirBronze", "CoinsCost": 1350 }, + { "Item": "AtgeirIron", "CoinsCost": 2500 }, + { "Item": "AtgeirBlackmetal", "CoinsCost": 4000 }, + + { "Item": "AxeStone", "CoinsCost": 500 }, + { "Item": "AxeFlint", "CoinsCost": 500 }, + { "Item": "AxeBronze", "CoinsCost": 1350 }, + { "Item": "AxeIron", "CoinsCost": 2500 }, + { "Item": "AxeBlackMetal", "CoinsCost": 5000 }, + + { "Item": "Battleaxe", "CoinsCost": 1500 }, + + { "Item": "Club", "CoinsCost": 500 }, + { "Item": "MaceBronze", "CoinsCost": 1500 }, + { "Item": "MaceIron", "CoinsCost": 2500 }, + { "Item": "MaceSilver", "CoinsCost": 4000 }, + { "Item": "MaceNeedle", "CoinsCost": 5000 }, + + { "Item": "KnifeFlint", "CoinsCost": 500 }, + { "Item": "KnifeCopper", "CoinsCost": 1500 }, + { "Item": "KnifeChitin", "CoinsCost": 1500 }, + { "Item": "KnifeBlackMetal", "CoinsCost": 4000 }, + + { "Item": "PickaxeStone", "CoinsCost": 450 }, + { "Item": "PickaxeAntler", "CoinsCost": 2000 }, + { "Item": "PickaxeBronze", "CoinsCost": 3000 }, + { "Item": "PickaxeIron", "CoinsCost": 4000 }, + + { "Item": "SledgeStagbreaker", "CoinsCost": 2500 }, + { "Item": "SledgeIron", "CoinsCost": 4000 }, + + { "Item": "SpearFlint", "CoinsCost": 500 }, + { "Item": "SpearBronze", "CoinsCost": 1500 }, + { "Item": "SpearElderbark", "CoinsCost": 2400 }, + { "Item": "SpearChitin", "CoinsCost": 2300 }, + { "Item": "SpearWolfFang", "CoinsCost": 2600 }, + + { "Item": "SwordBronze", "CoinsCost": 2500 }, + { "Item": "SwordIron", "CoinsCost": 3500 }, + { "Item": "SwordSilver", "CoinsCost": 4500 }, + { "Item": "SwordBlackmetal", "CoinsCost": 7500 }, + + { "Item": "Bow", "CoinsCost": 1500 }, + { "Item": "BowFineWood", "CoinsCost": 4500 }, + { "Item": "BowHuntsman", "CoinsCost": 7500 }, + { "Item": "BowDraugrFang", "CoinsCost": 10000 }, + + { "Item": "ShieldWood", "CoinsCost": 500 }, + { "Item": "ShieldBronzeBuckler", "CoinsCost": 2500 }, + { "Item": "ShieldBanded", "CoinsCost": 4500 }, + { "Item": "ShieldSilver", "CoinsCost": 5500 }, + { "Item": "ShieldBlackmetal", "CoinsCost": 7500 }, + + { "Item": "ShieldWoodTower", "CoinsCost": 430 }, + { "Item": "ShieldIronTower", "CoinsCost": 3700 }, + { "Item": "ShieldSerpentscale", "CoinsCost": 7500 }, + { "Item": "ShieldBlackmetalTower", "CoinsCost": 10000 }, + + { "Item": "ArmorRagsChest", "CoinsCost": 400 }, + { "Item": "ArmorLeatherChest", "CoinsCost": 500 }, + { "Item": "ArmorTrollLeatherChest", "CoinsCost": 1000 }, + { "Item": "ArmorBronzeChest", "CoinsCost": 2550 }, + { "Item": "ArmorIronChest", "CoinsCost": 4000 }, + { "Item": "ArmorWolfChest", "CoinsCost": 5000 }, + { "Item": "ArmorPaddedCuirass", "CoinsCost": 7500 }, + + { "Item": "ArmorRagsLegs", "CoinsCost": 400 }, + { "Item": "ArmorLeatherLegs", "CoinsCost": 500 }, + { "Item": "ArmorTrollLeatherLegs", "CoinsCost": 1000 }, + { "Item": "ArmorBronzeLegs", "CoinsCost": 2550 }, + { "Item": "ArmorIronLegs", "CoinsCost": 4000 }, + { "Item": "ArmorWolfLegs", "CoinsCost": 5000 }, + { "Item": "ArmorPaddedGreaves", "CoinsCost": 7500 }, + + { "Item": "HelmetLeather", "CoinsCost": 500 }, + { "Item": "HelmetTrollLeather", "CoinsCost": 1000 }, + { "Item": "HelmetBronze", "CoinsCost": 2500 }, + { "Item": "HelmetIron", "CoinsCost": 3000 }, + { "Item": "HelmetDrake", "CoinsCost": 5000 }, + { "Item": "HelmetPadded", "CoinsCost": 7500 }, + + { "Item": "CapeDeerHide", "CoinsCost": 1000 }, + { "Item": "CapeTrollHide", "CoinsCost": 1500 }, + { "Item": "CapeWolf", "CoinsCost": 4500 }, + { "Item": "CapeLinen", "CoinsCost": 4000 }, + { "Item": "CapeLox", "CoinsCost": 5000 } + + ] + }, + "TreasureMap": { + "RefreshInterval": 7, + "BiomeInfo": [ + { "Biome": "Meadows", "Cost": 150, "ForestTokens": 50, "MinRadius": 0, "MaxRadius": 1500 }, + { "Biome": "BlackForest", "Cost": 200, "ForestTokens": 100, "MinRadius": 0, "MaxRadius": 3000 }, + { "Biome": "Swamp", "Cost": 300, "ForestTokens": 150, "MinRadius": 0, "MaxRadius": 3000 }, + { "Biome": "Mountain", "Cost": 350, "ForestTokens": 200, "MinRadius": 0, "MaxRadius": 3000 }, + { "Biome": "Plains", "Cost": 500, "ForestTokens": 300, "MinRadius": 0, "MaxRadius": 3000 } + ], + "StartRadiusMin": 0, + "StartRadiusMax": 200, + "IncreaseRadiusCount": 3, + "RadiusInterval": 500, + "MinimapAreaRadius": 60, + "SaleItems": [ + { "Item": "RunestoneMagic", "ForestTokenCost": 10 }, + { "Item": "RunestoneRare", "ForestTokenCost": 20 }, + { "Item": "RunestoneEpic", "ForestTokenCost": 50 }, + { "Item": "RunestoneLegendary", "ForestTokenCost": 150 }, + { "Item": "ShardLegendary", "ForestTokenCost": 50 }, + { "Item": "DustLegendary", "ForestTokenCost": 20 }, + { "Item": "ReagentLegendary", "ForestTokenCost": 20 }, + { "Item": "EssenceLegendary", "ForestTokenCost": 20 } + ] + }, + "Bounties": { + "RefreshInterval": 4, + "IronMinLevel": 1, + "IronMaxLevel": 2, + "IronHealthMultiplier": 1.5, + "GoldMinLevel": 2, + "GoldMaxLevel": 4, + "GoldHealthMultiplier": 4.0, + "AddsMinLevel": 1, + "AddsMaxLevel": 2, + "AddsHealthMultiplier": 1.5, + "Targets": [ + { "Biome": "Meadows", "TargetID": "Deer", "RewardGold": 10, "RewardIron": 10, "RewardCoins": 250 }, + { "Biome": "Meadows", "TargetID": "Boar", "RewardGold": 0, "RewardIron": 1, "RewardCoins": 10 }, + { "Biome": "Meadows", "TargetID": "Boar", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 150 }, + { "Biome": "Meadows", "TargetID": "Neck", "RewardGold": 0, "RewardIron": 1, "RewardCoins": 10 }, + { "Biome": "Meadows", "TargetID": "Neck", "RewardGold": 0, "RewardIron": 2, "RewardCoins": 15 }, + + { "Biome": "BlackForest", "TargetID": "Greydwarf", "RewardGold": 0, "RewardIron": 2, "RewardCoins": 15 }, + { "Biome": "BlackForest", "TargetID": "Greydwarf", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 15 }, + { "Biome": "BlackForest", "TargetID": "Skeleton", "RewardGold": 0, "RewardIron": 2, "RewardCoins": 15 }, + { "Biome": "BlackForest", "TargetID": "Skeleton", "RewardGold": 0, "RewardIron": 10, "RewardCoins": 150 }, + { "Biome": "BlackForest", "TargetID": "Ghost", "RewardGold": 0, "RewardIron": 2, "RewardCoins": 20 }, + { "Biome": "BlackForest", "TargetID": "Skeleton", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 30 }, + { "Biome": "BlackForest", "TargetID": "Greydwarf_Elite", "RewardGold": 10, "RewardIron": 10, "RewardCoins": 250 }, + { "Biome": "BlackForest", "TargetID": "Troll", "RewardGold": 20, "RewardIron": 40, "RewardCoins": 1000 }, + { "Biome": "BlackForest", "TargetID": "Greydwarf_Shaman", "RewardGold": 1, "RewardIron": 4, "RewardCoins": 200 }, + + { "Biome": "Swamp", "TargetID": "Blob", "RewardGold": 0, "RewardIron": 10, "RewardCoins": 100 }, + { "Biome": "Swamp", "TargetID": "Skeleton", "RewardGold": 0, "RewardIron": 3, "RewardCoins": 20 }, + { "Biome": "Swamp", "TargetID": "Leech", "RewardGold": 5, "RewardIron": 5, "RewardCoins": 20 }, + { "Biome": "Swamp", "TargetID": "Draugr", "RewardGold": 0, "RewardIron": 3, "RewardCoins": 30 }, + { "Biome": "Swamp", "TargetID": "Surtling", "RewardGold": 0, "RewardIron": 3, "RewardCoins": 20 }, + { "Biome": "Swamp", "TargetID": "Wraith", "RewardGold": 30, "RewardIron": 30, "RewardCoins": 1000 }, + { "Biome": "Swamp", "TargetID": "Draugr_Elite", "RewardGold": 1, "RewardIron": 6, "RewardCoins": 250 }, + { "Biome": "Swamp", "TargetID": "Draugr_Elite", "RewardGold": 10, "RewardIron": 25, "RewardCoins": 500 }, + { "Biome": "Swamp", "TargetID": "Skeleton", "RewardGold": 1, "RewardIron": 5, "RewardCoins": 50 }, + + { "Biome": "Mountain", "TargetID": "Wolf", "RewardGold": 0, "RewardIron": 4, "RewardCoins": 30 }, + { "Biome": "Mountain", "TargetID": "Wolf", "RewardGold": 0, "RewardIron": 4, "RewardCoins": 30 }, + { "Biome": "Mountain", "TargetID": "Hatchling", "RewardGold": 0, "RewardIron": 4, "RewardCoins": 30 }, + { "Biome": "Mountain", "TargetID": "Hatchling", "RewardGold": 0, "RewardIron": 4, "RewardCoins": 30 }, + { "Biome": "Mountain", "TargetID": "Fenring", "RewardGold": 2, "RewardIron": 5, "RewardCoins": 100 }, + { "Biome": "Mountain", "TargetID": "StoneGolem", "RewardGold": 10, "RewardIron": 10, "RewardCoins": 500 }, + { "Biome": "Mountain", "TargetID": "StoneGolem", "RewardGold": 50, "RewardIron": 50, "RewardCoins": 1250 }, + { "Biome": "Mountain", "TargetID": "StoneGolem", "RewardGold": 3, "RewardIron": 7, "RewardCoins": 150 }, + + { "Biome": "Plains", "TargetID": "Goblin", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 50 }, + { "Biome": "Plains", "TargetID": "Goblin", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 50 }, + { "Biome": "Plains", "TargetID": "Goblin", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 50 }, + { "Biome": "Plains", "TargetID": "Lox", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 80 }, + { "Biome": "Plains", "TargetID": "Deathsquito", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 35 }, + { "Biome": "Plains", "TargetID": "Deathsquito", "RewardGold": 0, "RewardIron": 5, "RewardCoins": 35 }, + { "Biome": "Plains", "TargetID": "Deathsquito", "RewardGold": 3, "RewardIron": 8, "RewardCoins": 50 }, + { "Biome": "Plains", "TargetID": "GoblinBrute", "RewardGold": 50, "RewardIron": 50, "RewardCoins": 2500 }, + { "Biome": "Plains", "TargetID": "GoblinBrute", "RewardGold": 3, "RewardIron": 8, "RewardCoins": 120 }, + { "Biome": "Plains", "TargetID": "GoblinBrute", "RewardGold": 3, "RewardIron": 10,"RewardCoins": 180 }, + { "Biome": "Plains", "TargetID": "GoblinShaman", "RewardGold": 3, "RewardIron": 10, "RewardCoins":200 }, + { "Biome": "Plains", "TargetID": "GoblinShaman", "RewardGold": 50, "RewardIron": 50, "RewardCoins":1500 }, + + { "Biome": "Ocean", "TargetID": "Serpent", "RewardGold": 5, "RewardIron": 5, "RewardCoins": 50 } + ], + "Names": { + "Prefixes": [ + "$mod_epicloot_bounties_prefix_acid", + "$mod_epicloot_bounties_prefix_aeztr", + "$mod_epicloot_bounties_prefix_agukir", + "$mod_epicloot_bounties_prefix_ajath", + "$mod_epicloot_bounties_prefix_akanoth", + "$mod_epicloot_bounties_prefix_almollak", + "$mod_epicloot_bounties_prefix_anarchis", + "$mod_epicloot_bounties_prefix_anger", + "$mod_epicloot_bounties_prefix_anguish", + "$mod_epicloot_bounties_prefix_asja", + "$mod_epicloot_bounties_prefix_aunuksih", + "$mod_epicloot_bounties_prefix_awnd", + "$mod_epicloot_bounties_prefix_azath", + "$mod_epicloot_bounties_prefix_azzamod", + "$mod_epicloot_bounties_prefix_bagthamuun", + "$mod_epicloot_bounties_prefix_barb", + "$mod_epicloot_bounties_prefix_bathtador", + "$mod_epicloot_bounties_prefix_bein", + "$mod_epicloot_bounties_prefix_bepshish", + "$mod_epicloot_bounties_prefix_blemish", + "$mod_epicloot_bounties_prefix_blent", + "$mod_epicloot_bounties_prefix_bone", + "$mod_epicloot_bounties_prefix_boninned", + "$mod_epicloot_bounties_prefix_borth", + "$mod_epicloot_bounties_prefix_bracknik", + "$mod_epicloot_bounties_prefix_brazrannug", + "$mod_epicloot_bounties_prefix_caella", + "$mod_epicloot_bounties_prefix_danger", + "$mod_epicloot_bounties_prefix_deakgu", + "$mod_epicloot_bounties_prefix_deceit", + "$mod_epicloot_bounties_prefix_deraria", + "$mod_epicloot_bounties_prefix_desonia", + "$mod_epicloot_bounties_prefix_dogmozun", + "$mod_epicloot_bounties_prefix_domr", + "$mod_epicloot_bounties_prefix_dread", + "$mod_epicloot_bounties_prefix_drogtherun", + "$mod_epicloot_bounties_prefix_drorothiuk", + "$mod_epicloot_bounties_prefix_dugi", + "$mod_epicloot_bounties_prefix_dulphumph", + "$mod_epicloot_bounties_prefix_dwent", + "$mod_epicloot_bounties_prefix_envy", + "$mod_epicloot_bounties_prefix_etherezi", + "$mod_epicloot_bounties_prefix_ezeret", + "$mod_epicloot_bounties_prefix_fafseal", + "$mod_epicloot_bounties_prefix_fame", + "$mod_epicloot_bounties_prefix_fate", + "$mod_epicloot_bounties_prefix_feairi", + "$mod_epicloot_bounties_prefix_fear", + "$mod_epicloot_bounties_prefix_felagi", + "$mod_epicloot_bounties_prefix_feldgulg", + "$mod_epicloot_bounties_prefix_feral", + "$mod_epicloot_bounties_prefix_floerd", + "$mod_epicloot_bounties_prefix_florialle", + "$mod_epicloot_bounties_prefix_florola", + "$mod_epicloot_bounties_prefix_frodi", + "$mod_epicloot_bounties_prefix_frosti", + "$mod_epicloot_bounties_prefix_funa", + "$mod_epicloot_bounties_prefix_fwent", + "$mod_epicloot_bounties_prefix_gagrellan", + "$mod_epicloot_bounties_prefix_gallhag", + "$mod_epicloot_bounties_prefix_garunoth", + "$mod_epicloot_bounties_prefix_griever", + "$mod_epicloot_bounties_prefix_grima", + "$mod_epicloot_bounties_prefix_hagr", + "$mod_epicloot_bounties_prefix_hath", + "$mod_epicloot_bounties_prefix_hatred", + "$mod_epicloot_bounties_prefix_helleanor", + "$mod_epicloot_bounties_prefix_hephinore", + "$mod_epicloot_bounties_prefix_hermadi", + "$mod_epicloot_bounties_prefix_hildr", + "$mod_epicloot_bounties_prefix_hjala", + "$mod_epicloot_bounties_prefix_hluti", + "$mod_epicloot_bounties_prefix_horron", + "$mod_epicloot_bounties_prefix_horror", + "$mod_epicloot_bounties_prefix_igurg", + "$mod_epicloot_bounties_prefix_irrad", + "$mod_epicloot_bounties_prefix_ithturus", + "$mod_epicloot_bounties_prefix_jaugruje", + "$mod_epicloot_bounties_prefix_jecsuqut", + "$mod_epicloot_bounties_prefix_jekegshout", + "$mod_epicloot_bounties_prefix_jougyeq", + "$mod_epicloot_bounties_prefix_kolruzok", + "$mod_epicloot_bounties_prefix_kula", + "$mod_epicloot_bounties_prefix_litlaus", + "$mod_epicloot_bounties_prefix_lorethe", + "$mod_epicloot_bounties_prefix_lugdum", + "$mod_epicloot_bounties_prefix_lyvise", + "$mod_epicloot_bounties_prefix_malice", + "$mod_epicloot_bounties_prefix_malmr", + "$mod_epicloot_bounties_prefix_margath", + "$mod_epicloot_bounties_prefix_mask", + "$mod_epicloot_bounties_prefix_mattr", + "$mod_epicloot_bounties_prefix_mighty", + "$mod_epicloot_bounties_prefix_mimir", + "$mod_epicloot_bounties_prefix_mol", + "$mod_epicloot_bounties_prefix_moleck", + "$mod_epicloot_bounties_prefix_moloth", + "$mod_epicloot_bounties_prefix_morbius", + "$mod_epicloot_bounties_prefix_mordvig", + "$mod_epicloot_bounties_prefix_natt", + "$mod_epicloot_bounties_prefix_nehgac", + "$mod_epicloot_bounties_prefix_nelleanor", + "$mod_epicloot_bounties_prefix_nephyana", + "$mod_epicloot_bounties_prefix_night", + "$mod_epicloot_bounties_prefix_noxuc", + "$mod_epicloot_bounties_prefix_nucsus", + "$mod_epicloot_bounties_prefix_nysalin", + "$mod_epicloot_bounties_prefix_olganeth", + "$mod_epicloot_bounties_prefix_opathu", + "$mod_epicloot_bounties_prefix_orinys", + "$mod_epicloot_bounties_prefix_orrakith", + "$mod_epicloot_bounties_prefix_ostronag", + "$mod_epicloot_bounties_prefix_osuxah", + "$mod_epicloot_bounties_prefix_ovaettr", + "$mod_epicloot_bounties_prefix_pnaby", + "$mod_epicloot_bounties_prefix_pra", + "$mod_epicloot_bounties_prefix_qflugi", + "$mod_epicloot_bounties_prefix_rage", + "$mod_epicloot_bounties_prefix_recseh", + "$mod_epicloot_bounties_prefix_rezuaq", + "$mod_epicloot_bounties_prefix_rok", + "$mod_epicloot_bounties_prefix_rot", + "$mod_epicloot_bounties_prefix_ruqujua", + "$mod_epicloot_bounties_prefix_sal", + "$mod_epicloot_bounties_prefix_scabthatch", + "$mod_epicloot_bounties_prefix_scare", + "$mod_epicloot_bounties_prefix_scaron", + "$mod_epicloot_bounties_prefix_sezzonas", + "$mod_epicloot_bounties_prefix_shadeling", + "$mod_epicloot_bounties_prefix_shahxuja", + "$mod_epicloot_bounties_prefix_skeltal", + "$mod_epicloot_bounties_prefix_skjar", + "$mod_epicloot_bounties_prefix_skod", + "$mod_epicloot_bounties_prefix_skoth", + "$mod_epicloot_bounties_prefix_sloth", + "$mod_epicloot_bounties_prefix_smog", + "$mod_epicloot_bounties_prefix_sorguleth", + "$mod_epicloot_bounties_prefix_sorrow", + "$mod_epicloot_bounties_prefix_soul", + "$mod_epicloot_bounties_prefix_spirit", + "$mod_epicloot_bounties_prefix_spite", + "$mod_epicloot_bounties_prefix_stormerki", + "$mod_epicloot_bounties_prefix_taustpion", + "$mod_epicloot_bounties_prefix_terron", + "$mod_epicloot_bounties_prefix_terror", + "$mod_epicloot_bounties_prefix_theloya", + "$mod_epicloot_bounties_prefix_tiglemun", + "$mod_epicloot_bounties_prefix_torment", + "$mod_epicloot_bounties_prefix_trostraus", + "$mod_epicloot_bounties_prefix_twilight", + "$mod_epicloot_bounties_prefix_tyrant", + "$mod_epicloot_bounties_prefix_tyvase", + "$mod_epicloot_bounties_prefix_uemiara", + "$mod_epicloot_bounties_prefix_ugaq", + "$mod_epicloot_bounties_prefix_und", + "$mod_epicloot_bounties_prefix_uquxa", + "$mod_epicloot_bounties_prefix_urnollaar", + "$mod_epicloot_bounties_prefix_ushuq", + "$mod_epicloot_bounties_prefix_vaett", + "$mod_epicloot_bounties_prefix_vam", + "$mod_epicloot_bounties_prefix_vind", + "$mod_epicloot_bounties_prefix_vit", + "$mod_epicloot_bounties_prefix_vozgonoth", + "$mod_epicloot_bounties_prefix_vyneano", + "$mod_epicloot_bounties_prefix_vynynore", + "$mod_epicloot_bounties_prefix_waringo", + "$mod_epicloot_bounties_prefix_warrior", + "$mod_epicloot_bounties_prefix_wind", + "$mod_epicloot_bounties_prefix_witseab", + "$mod_epicloot_bounties_prefix_wrath", + "$mod_epicloot_bounties_prefix_wurtguth", + "$mod_epicloot_bounties_prefix_xaanuzhe", + "$mod_epicloot_bounties_prefix_xagdrik", + "$mod_epicloot_bounties_prefix_xarpug", + "$mod_epicloot_bounties_prefix_xogdrath", + "$mod_epicloot_bounties_prefix_xolgog", + "$mod_epicloot_bounties_prefix_yegoth", + "$mod_epicloot_bounties_prefix_yerghug", + "$mod_epicloot_bounties_prefix_yoryne", + "$mod_epicloot_bounties_prefix_zephinore", + "$mod_epicloot_bounties_prefix_zetheret", + "$mod_epicloot_bounties_prefix_zmak", + "$mod_epicloot_bounties_prefix_zollmallan", + "$mod_epicloot_bounties_prefix_zorinak" + ], + "Suffixes": [ + "$mod_epicloot_bounties_suffix_dirt_eater", + "$mod_epicloot_bounties_suffix_frenzied_raider", + "$mod_epicloot_bounties_suffix_hero_slayer", + "$mod_epicloot_bounties_suffix_keeper_of_nightmares", + "$mod_epicloot_bounties_suffix_king_of_the_wicked", + "$mod_epicloot_bounties_suffix_lord_of_helheim", + "$mod_epicloot_bounties_suffix_marrow_eater", + "$mod_epicloot_bounties_suffix_mysterious_one", + "$mod_epicloot_bounties_suffix_nomad_of_the_wastelands", + "$mod_epicloot_bounties_suffix_patron_of_the_mad", + "$mod_epicloot_bounties_suffix_spoiled_one", + "$mod_epicloot_bounties_suffix_steward_of_the_eclipse", + "$mod_epicloot_bounties_suffix_thief_of_ignorance", + "$mod_epicloot_bounties_suffix_thunderous_one", + "$mod_epicloot_bounties_suffix_tortured_soul", + "$mod_epicloot_bounties_suffix_treasure_hunter", + "$mod_epicloot_bounties_suffix_umbral_stalker", + "$mod_epicloot_bounties_suffix_unspeakable_horror", + + "$mod_epicloot_bounties_suffix_bannerlord", + "$mod_epicloot_bounties_suffix_battleborn", + "$mod_epicloot_bounties_suffix_battlefury", + "$mod_epicloot_bounties_suffix_bloodspilt", + "$mod_epicloot_bounties_suffix_carrionfeast", + "$mod_epicloot_bounties_suffix_clevermind", + "$mod_epicloot_bounties_suffix_cursebreaker", + "$mod_epicloot_bounties_suffix_darkcloak", + "$mod_epicloot_bounties_suffix_darkshade", + "$mod_epicloot_bounties_suffix_darkstone", + "$mod_epicloot_bounties_suffix_dawnbreaker", + "$mod_epicloot_bounties_suffix_dawnfire", + "$mod_epicloot_bounties_suffix_deathgreeting", + "$mod_epicloot_bounties_suffix_deathgrin", + "$mod_epicloot_bounties_suffix_doomsphere", + "$mod_epicloot_bounties_suffix_dreadfang", + "$mod_epicloot_bounties_suffix_glittermist", + "$mod_epicloot_bounties_suffix_gloryseeker", + "$mod_epicloot_bounties_suffix_greedgallow", + "$mod_epicloot_bounties_suffix_griefstrike", + "$mod_epicloot_bounties_suffix_hailfall", + "$mod_epicloot_bounties_suffix_jotunkin", + "$mod_epicloot_bounties_suffix_lamplight", + "$mod_epicloot_bounties_suffix_nightfall", + "$mod_epicloot_bounties_suffix_oathbreaker", + "$mod_epicloot_bounties_suffix_omenbleed", + "$mod_epicloot_bounties_suffix_pestilence", + "$mod_epicloot_bounties_suffix_pridefall", + "$mod_epicloot_bounties_suffix_quake", + "$mod_epicloot_bounties_suffix_runekennen", + "$mod_epicloot_bounties_suffix_scythe", + "$mod_epicloot_bounties_suffix_siezefrenzy", + "$mod_epicloot_bounties_suffix_skullcrusher", + "$mod_epicloot_bounties_suffix_spearpoint", + "$mod_epicloot_bounties_suffix_spitemonger", + "$mod_epicloot_bounties_suffix_starfall", + "$mod_epicloot_bounties_suffix_starlight", + "$mod_epicloot_bounties_suffix_svalroot", + "$mod_epicloot_bounties_suffix_swiftspite", + "$mod_epicloot_bounties_suffix_thrall", + "$mod_epicloot_bounties_suffix_toothgrind", + "$mod_epicloot_bounties_prefix_torment", + "$mod_epicloot_bounties_suffix_twigsnapper", + "$mod_epicloot_bounties_suffix_viletongue", + "$mod_epicloot_bounties_suffix_warbane", + "$mod_epicloot_bounties_suffix_warfall", + "$mod_epicloot_bounties_suffix_warfighter", + "$mod_epicloot_bounties_suffix_whispersmith", + + "$mod_epicloot_bounties_suffix_of_courage", + "$mod_epicloot_bounties_suffix_of_hostility", + "$mod_epicloot_bounties_suffix_of_might", + "$mod_epicloot_bounties_suffix_of_radiance", + "$mod_epicloot_bounties_suffix_of_silence", + "$mod_epicloot_bounties_suffix_of_spite", + "$mod_epicloot_bounties_suffix_of_the_banner", + "$mod_epicloot_bounties_suffix_of_the_darkness", + "$mod_epicloot_bounties_suffix_of_tolling_bells", + "$mod_epicloot_bounties_suffix_of_vengeance", + "$mod_epicloot_bounties_suffix_the_abandoned", + "$mod_epicloot_bounties_suffix_the_ancient", + "$mod_epicloot_bounties_suffix_the_betrayer", + "$mod_epicloot_bounties_suffix_the_brutal", + "$mod_epicloot_bounties_suffix_the_brute", + "$mod_epicloot_bounties_suffix_the_butcher", + "$mod_epicloot_bounties_suffix_the_chatterer", + "$mod_epicloot_bounties_suffix_the_cleaver", + "$mod_epicloot_bounties_suffix_the_contemptible", + "$mod_epicloot_bounties_suffix_the_corpse", + "$mod_epicloot_bounties_suffix_the_cursed", + "$mod_epicloot_bounties_suffix_the_damned", + "$mod_epicloot_bounties_suffix_the_depraved", + "$mod_epicloot_bounties_suffix_the_destroyer", + "$mod_epicloot_bounties_suffix_the_doomed", + "$mod_epicloot_bounties_suffix_the_empty", + "$mod_epicloot_bounties_suffix_the_evil", + "$mod_epicloot_bounties_suffix_the_executioner", + "$mod_epicloot_bounties_suffix_the_fiend", + "$mod_epicloot_bounties_suffix_the_fierce", + "$mod_epicloot_bounties_suffix_the_foul", + "$mod_epicloot_bounties_suffix_the_ghastly", + "$mod_epicloot_bounties_suffix_the_gilt", + "$mod_epicloot_bounties_suffix_the_greedy", + "$mod_epicloot_bounties_suffix_the_guilty", + "$mod_epicloot_bounties_suffix_the_handsome", + "$mod_epicloot_bounties_suffix_the_hellion", + "$mod_epicloot_bounties_suffix_the_horror", + "$mod_epicloot_bounties_suffix_the_humiliated", + "$mod_epicloot_bounties_suffix_the_immortal", + "$mod_epicloot_bounties_suffix_the_insulted", + "$mod_epicloot_bounties_suffix_the_knife", + "$mod_epicloot_bounties_suffix_the_maligned", + "$mod_epicloot_bounties_suffix_the_mangler", + "$mod_epicloot_bounties_suffix_the_miser", + "$mod_epicloot_bounties_suffix_the_monster", + "$mod_epicloot_bounties_suffix_the_murderer", + "$mod_epicloot_bounties_suffix_the_needle", + "$mod_epicloot_bounties_suffix_the_noxious", + "$mod_epicloot_bounties_suffix_the_omen", + "$mod_epicloot_bounties_suffix_the_pierced", + "$mod_epicloot_bounties_suffix_the_prickly", + "$mod_epicloot_bounties_suffix_the_quickened", + "$mod_epicloot_bounties_suffix_the_raider", + "$mod_epicloot_bounties_suffix_the_reckoner", + "$mod_epicloot_bounties_suffix_the_revenant", + "$mod_epicloot_bounties_suffix_the_rude", + "$mod_epicloot_bounties_suffix_the_savage", + "$mod_epicloot_bounties_suffix_the_seer", + "$mod_epicloot_bounties_suffix_the_shield", + "$mod_epicloot_bounties_suffix_the_slaughtered", + "$mod_epicloot_bounties_suffix_the_slayer", + "$mod_epicloot_bounties_suffix_the_sleeper", + "$mod_epicloot_bounties_suffix_the_soldier", + "$mod_epicloot_bounties_suffix_the_spiteful", + "$mod_epicloot_bounties_suffix_the_talisman", + "$mod_epicloot_bounties_suffix_the_terrible", + "$mod_epicloot_bounties_suffix_the_vicious", + "$mod_epicloot_bounties_suffix_the_vile", + "$mod_epicloot_bounties_suffix_the_weapon", + "$mod_epicloot_bounties_suffix_the_wicked" + ] + } + } +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/enchantcosts.json b/ValheimClient/BepInEx/plugins/EpicLoot/enchantcosts.json new file mode 100644 index 0000000..07a94cc --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/enchantcosts.json @@ -0,0 +1,321 @@ +{ + // Disenchant Products + /////////////////////////////////////////////////////////////////////////////////////////////// + "DisenchantProducts": [ + { + "IsMagic": true, + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Magic", + "Products": [ + { "Item": "DustMagic", "Amount": 1 }, + { "Item": "EssenceMagic", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Rare", + "Products": [ + { "Item": "DustRare", "Amount": 1 }, + { "Item": "EssenceRare", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Epic", + "Products": [ + { "Item": "DustEpic", "Amount": 1 }, + { "Item": "EssenceEpic", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Legendary", + "Products": [ + { "Item": "DustLegendary", "Amount": 1 }, + { "Item": "EssenceLegendary", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Magic", + "Products": [ + { "Item": "DustMagic", "Amount": 1 }, + { "Item": "ReagentMagic", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Rare", + "Products": [ + { "Item": "DustRare", "Amount": 1 }, + { "Item": "ReagentRare", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Epic", + "Products": [ + { "Item": "DustEpic", "Amount": 1 }, + { "Item": "ReagentEpic", "Amount": 1 } + ] + }, + { + "IsMagic": true, + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Legendary", + "Products": [ + { "Item": "DustLegendary", "Amount": 1 }, + { "Item": "ReagentLegendary", "Amount": 1 } + ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_boar", "$item_trophy_deer", "$item_trophy_greydwarf", "$item_trophy_neck", "$item_trophy_skeleton", "$item_trophy_skeletonpoison" ], + "Products" : [ { "Item": "ShardMagic", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_troll", "$item_trophy_greydwarfbrute", "$item_trophy_greydwarfshaman", "$item_trophy_blob", "$item_trophy_draugr", "$item_trophy_draugrelite", "$item_trophy_draugrfem", "$item_trophy_foresttroll", "$item_trophy_leech", "$item_trophy_surtling", "$item_trophy_wolf", "$item_trophy_wraith" ], + "Products" : [ { "Item": "ShardRare", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_fenring", "$item_trophy_goblin", "$item_trophy_hatchling", "$item_trophy_lox", "$item_trophy_sgolem" ], + "Products" : [ { "Item": "ShardEpic", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_deathsquito", "$item_trophy_goblinbrute", "$item_trophy_goblinshaman", "$item_trophy_serpent" ], + "Products" : [ { "Item": "ShardLegendary", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_eikthyr" ], + "Products" : [ { "Item": "RunestoneMagic", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_elder" ], + "Products" : [ { "Item": "RunestoneRare", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_bonemass" ], + "Products" : [ { "Item": "RunestoneEpic", "Amount": 1 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_dragonqueen" ], + "Products" : [ { "Item": "RunestoneLegendary", "Amount": 2 } ] + }, + { + "ItemTypes" : [ "Trophie" ], + "ItemNames" : [ "$item_trophy_goblinking" ], + "Products" : [ { "Item": "RunestoneLegendary", "Amount": 4 } ] + }, + { + "ItemNames" : [ "$item_cryptkey" ], + "Products" : [ + { "Item": "DustRare", "Amount": 2 }, + { "Item": "EssenceRare", "Amount": 1 }, + { "Item": "ReagentRare", "Amount": 1 } + ] + }, + { + "ItemNames" : [ "$item_dragontear" ], + "Products" : [ + { "Item": "DustLegendary", "Amount": 2 }, + { "Item": "EssenceLegendary", "Amount": 1 }, + { "Item": "ReagentLegendary", "Amount": 1 } + ] + }, + { + "ItemNames" : [ "$item_dragontear" ], + "Products" : [ + { "Item": "DustLegendary", "Amount": 2 }, + { "Item": "EssenceLegendary", "Amount": 1 }, + { "Item": "ReagentLegendary", "Amount": 1 } + ] + }, + { + "ItemNames" : [ "Yagluth thing" ], + "Products" : [ + { "Item": "DustLegendary", "Amount": 6 }, + { "Item": "EssenceLegendary", "Amount": 3 }, + { "Item": "ReagentLegendary", "Amount": 3 } + ] + } + ], + + + // Enchant Costs + /////////////////////////////////////////////////////////////////////////////////////////////// + "EnchantCosts": [ + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Magic", + "Cost": [ + { "Item": "RunestoneMagic", "Amount": 1 }, + { "Item": "DustMagic", "Amount": 5 }, + { "Item": "EssenceMagic", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Rare", + "Cost": [ + { "Item": "RunestoneRare", "Amount": 1 }, + { "Item": "DustRare", "Amount": 5 }, + { "Item": "EssenceRare", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Epic", + "Cost": [ + { "Item": "RunestoneEpic", "Amount": 1 }, + { "Item": "DustEpic", "Amount": 5 }, + { "Item": "EssenceEpic", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Legendary", + "Cost": [ + { "Item": "RunestoneLegendary", "Amount": 5 }, + { "Item": "DustLegendary", "Amount": 15 }, + { "Item": "EssenceLegendary", "Amount": 15 }, + { "Item": "Coins", "Amount": 10000 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Magic", + "Cost": [ + { "Item": "RunestoneMagic", "Amount": 1 }, + { "Item": "DustMagic", "Amount": 5 }, + { "Item": "ReagentMagic", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Rare", + "Cost": [ + { "Item": "RunestoneRare", "Amount": 1 }, + { "Item": "DustRare", "Amount": 5 }, + { "Item": "ReagentRare", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Epic", + "Cost": [ + { "Item": "RunestoneEpic", "Amount": 1 }, + { "Item": "DustEpic", "Amount": 5 }, + { "Item": "ReagentEpic", "Amount": 5 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Legendary", + "Cost": [ + { "Item": "RunestoneLegendary", "Amount": 5 }, + { "Item": "DustLegendary", "Amount": 15 }, + { "Item": "ReagentLegendary", "Amount": 15 }, + { "Item": "Coins", "Amount": 10000 } + ] + } + ], + + + // Augment Costs + /////////////////////////////////////////////////////////////////////////////////////////////// + "AugmentCosts": [ + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Magic", + "Cost": [ + { "Item": "ShardMagic", "Amount": 1 }, + { "Item": "DustMagic", "Amount": 1 }, + { "Item": "EssenceMagic", "Amount": 1 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Rare", + "Cost": [ + { "Item": "ShardRare", "Amount": 1 }, + { "Item": "DustRare", "Amount": 1 }, + { "Item": "EssenceRare", "Amount": 1 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Epic", + "Cost": [ + { "Item": "ShardEpic", "Amount": 3 }, + { "Item": "DustEpic", "Amount": 3 }, + { "Item": "EssenceEpic", "Amount": 3 } + ] + }, + { + "ItemTypes" : [ "OneHandedWeapon", "Bow", "TwoHandedWeapon", "Torch", "Tool" ], + "Rarity": "Legendary", + "Cost": [ + { "Item": "ShardLegendary", "Amount": 3 }, + { "Item": "DustLegendary", "Amount": 3 }, + { "Item": "EssenceLegendary", "Amount": 3 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Magic", + "Cost": [ + { "Item": "ShardMagic", "Amount": 1 }, + { "Item": "DustMagic", "Amount": 1 }, + { "Item": "ReagentMagic", "Amount": 1 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Rare", + "Cost": [ + { "Item": "ShardRare", "Amount": 1 }, + { "Item": "DustRare", "Amount": 1 }, + { "Item": "ReagentRare", "Amount": 1 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Epic", + "Cost": [ + { "Item": "ShardEpic", "Amount": 2 }, + { "Item": "DustEpic", "Amount": 2 }, + { "Item": "ReagentEpic", "Amount": 2 } + ] + }, + { + "ItemTypes" : [ "Shield", "Helmet", "Chest", "Legs", "Shoulder", "Utility" ], + "Rarity": "Legendary", + "Cost": [ + { "Item": "ShardLegendary", "Amount": 2 }, + { "Item": "DustLegendary", "Amount": 2 }, + { "Item": "ReagentLegendary", "Amount": 2 } + ] + } + ], + "ReAugmentCosts" : [ + { "Item": "Coins", "Amount": 5000 }, + { "Item": "Coins", "Amount": 10000 }, + { "Item": "Coins", "Amount": 15000 }, + { "Item": "Coins", "Amount": 25000 }, + { "Item": "Coins", "Amount": 27500 }, + { "Item": "Coins", "Amount": 29000 } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/iteminfo.json b/ValheimClient/BepInEx/plugins/EpicLoot/iteminfo.json new file mode 100644 index 0000000..8e4054e --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/iteminfo.json @@ -0,0 +1,99 @@ +{ + "ItemInfo": [ + { + "Type": "Swords", + "Fallback": "AxeFlint", + "Items": [ "SwordBronze", "SwordIron", "SwordSilver", "SwordBlackmetal" ] + }, + { + "Type": "Axes", + "Fallback": "Club", + "Items": [ "AxeStone", "AxeFlint", "AxeBronze", "AxeIron", "AxeBlackMetal" ] + }, + { + "Type": "TwoHandAxes", + "Fallback": "AxeIron", + "Items": [ "Battleaxe" ] + }, + { + "Type": "Knives", + "Fallback": "Club", + "Items": [ "KnifeFlint", "KnifeCopper", "KnifeChitin", "KnifeBlackMetal" ] + }, + { + "Type": "Clubs", + "Fallback": "", + "Items": [ "Club", "MaceBronze", "MaceIron", "MaceSilver", "MaceNeedle" ] + }, + { + "Type": "Sledges", + "Fallback": "AxeFlint", + "Items": [ "SledgeStagbreaker", "SledgeIron" ] + }, + { + "Type": "Polearms", + "Fallback": "SpearBronze", + "Items": [ "AtgeirBronze", "AtgeirIron", "AtgeirBlackmetal" ] + }, + { + "Type": "Spears", + "Fallback": "Club", + "Items": [ "SpearFlint", "SpearBronze", "SpearElderbark", "SpearChitin", "SpearWolfFang" ] + }, + { + "Type": "Pickaxes", + "Fallback": "AxeFlint", + "Items": [ "PickaxeAntler", "PickaxeBronze", "PickaxeIron" ] + }, + { + "Type": "Bows", + "Fallback": "Club", + "Items": [ "Bow", "BowFineWood", "BowHuntsman", "BowDraugrFang" ] + }, + { + "Type": "RoundShields", + "Fallback": "Club", + "Items": [ "ShieldWood", "ShieldBronzeBuckler", "ShieldBanded", "ShieldSilver", "ShieldBlackmetal" ] + }, + { + "Type": "TowerShields", + "Fallback": "Club", + "Items": [ "ShieldWoodTower", "ShieldIronTower", "ShieldSerpentscale", "ShieldBlackmetalTower" ] + }, + { + "Type": "ChestArmor", + "Fallback": "", + "Items": [ "ArmorRagsChest", "ArmorLeatherChest", "ArmorTrollLeatherChest", "ArmorBronzeChest", "ArmorIronChest", "ArmorWolfChest", "ArmorPaddedCuirass" ] + }, + { + "Type": "LegsArmor", + "Fallback": "", + "Items": [ "ArmorRagsLegs", "ArmorLeatherLegs", "ArmorTrollLeatherLegs", "ArmorBronzeLegs", "ArmorIronLegs", "ArmorWolfLegs", "ArmorPaddedGreaves" ] + }, + { + "Type": "HeadArmor", + "Fallback": "ArmorRagsChest", + "Items": [ "HelmetLeather", "HelmetTrollLeather", "HelmetBronze", "HelmetIron", "HelmetDrake", "HelmetPadded" ] + }, + { + "Type": "ShouldersArmor", + "Fallback": "ArmorRagsLegs", + "Items": [ "CapeDeerHide", "CapeTrollHide", "CapeWolf", "CapeLinen", "CapeLox" ] + }, + { + "Type": "Torches", + "Fallback": "Club", + "Items": [ "Torch" ] + }, + { + "Type": "Tools", + "Fallback": "Club", + "Items": [ "Hammer", "Hoe", "Cultivator" ] + }, + { + "Type": "Utility", + "Fallback": "", + "Items": [ ] + } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/itemnames.json b/ValheimClient/BepInEx/plugins/EpicLoot/itemnames.json new file mode 100644 index 0000000..bf96fd4 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/itemnames.json @@ -0,0 +1,217 @@ +{ + "Rare" : { + "GenericPrefixes": [ + "$mod_epicloot_rare_prefix1", + "$mod_epicloot_rare_prefix2", + "$mod_epicloot_rare_prefix3" + ], + "GenericSuffixes": [ + "mod_epicloot_rare_suffix1", + "mod_epicloot_rare_suffix2", + "mod_epicloot_rare_suffix3" + ] + }, + "Epic" : { + "Adjectives" : [ + { "Name": "$mod_epicloot_epic_aesir" }, + { "Name": "$mod_epicloot_epic_alfheim" }, + { "Name": "$mod_epicloot_epic_andvaris" }, + { "Name": "$mod_epicloot_epic_askrs" }, + { "Name": "$mod_epicloot_epic_beast" }, + { "Name": "$mod_epicloot_epic_berserker" }, + { "Name": "$mod_epicloot_epic_black" }, + { "Name": "$mod_epicloot_epic_blood" }, + { "Name": "$mod_epicloot_epic_bone" }, + { "Name": "$mod_epicloot_epic_carrion" }, + { "Name": "$mod_epicloot_epic_chaos" }, + { "Name": "$mod_epicloot_epic_crow" }, + { "Name": "$mod_epicloot_epic_cruel" }, + { "Name": "$mod_epicloot_epic_death" }, + { "Name": "$mod_epicloot_epic_doom" }, + { "Name": "$mod_epicloot_epic_dread" }, + { "Name": "$mod_epicloot_epic_dverger" }, + { "Name": "$mod_epicloot_epic_dokkalfar" }, + { "Name": "$mod_epicloot_epic_emblas" }, + { "Name": "$mod_epicloot_epic_fell" }, + { "Name": "$mod_epicloot_epic_fiend" }, + { "Name": "$mod_epicloot_epic_giant" }, + { "Name": "$mod_epicloot_epic_giantess" }, + { "Name": "$mod_epicloot_epic_glyph" }, + { "Name": "$mod_epicloot_epic_greyfell" }, + { "Name": "$mod_epicloot_epic_grim" }, + { "Name": "$mod_epicloot_epic_havoc" }, + { "Name": "$mod_epicloot_epic_heathen" }, + { "Name": "$mod_epicloot_epic_hel" }, + { "Name": "$mod_epicloot_epic_ljosalfar" }, + { "Name": "$mod_epicloot_epic_midgard" }, + { "Name": "$mod_epicloot_epic_nibelung" }, + { "Name": "$mod_epicloot_epic_niflheim" }, + { "Name": "$mod_epicloot_epic_norn" }, + { "Name": "$mod_epicloot_epic_northgard" }, + { "Name": "$mod_epicloot_epic_omen" }, + { "Name": "$mod_epicloot_epic_order" }, + { "Name": "$mod_epicloot_epic_pain" }, + { "Name": "$mod_epicloot_epic_plague" }, + { "Name": "$mod_epicloot_epic_rage" }, + { "Name": "$mod_epicloot_epic_ragnarok" }, + { "Name": "$mod_epicloot_epic_ransack" }, + { "Name": "$mod_epicloot_epic_raven" }, + { "Name": "$mod_epicloot_epic_saga" }, + { "Name": "$mod_epicloot_epic_scathe" }, + { "Name": "$mod_epicloot_epic_shadow" }, + { "Name": "$mod_epicloot_epic_skulds" }, + { "Name": "$mod_epicloot_epic_skull" }, + { "Name": "$mod_epicloot_epic_slaughter" }, + { "Name": "$mod_epicloot_epic_svartalfar" }, + { "Name": "$mod_epicloot_epic_troll" }, + { "Name": "$mod_epicloot_epic_valhalla" }, + { "Name": "$mod_epicloot_epic_vali" }, + { "Name": "$mod_epicloot_epic_valkyrie" }, + { "Name": "$mod_epicloot_epic_vanir" }, + { "Name": "$mod_epicloot_epic_vitharr" }, + { "Name": "$mod_epicloot_epic_white" }, + { "Name": "$mod_epicloot_epic_wrath" }, + { "Name": "$mod_epicloot_epic_yggdrasill" }, + { "Name": "$mod_epicloot_epic_ymir" }, + + { "Name": "$mod_epicloot_epic_fleet", "MagicEffects": [ "ModifyMovementSpeed" ] }, + { "Name": "$mod_epicloot_epic_swift", "MagicEffects": [ "ModifyMovementSpeed" ] }, + + { "Name": "$mod_epicloot_epic_ash", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_blaze", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_char", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_conflagration", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_drake", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_inferno", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + { "Name": "$mod_epicloot_epic_surt", "MagicEffects": [ "AddFireDamage", "AddFireResistance" ] }, + + { "Name": "$mod_epicloot_epic_blizzard", "MagicEffects": [ "AddFrostDamage", "AddFrostResistance" ] }, + { "Name": "$mod_epicloot_epic_chill", "MagicEffects": [ "AddFrostDamage", "AddFrostResistance" ] }, + { "Name": "$mod_epicloot_epic_frost", "MagicEffects": [ "AddFrostDamage", "AddFrostResistance" ] }, + { "Name": "$mod_epicloot_epic_glacier", "MagicEffects": [ "AddFrostDamage", "AddFrostResistance" ] }, + { "Name": "$mod_epicloot_epic_hail", "MagicEffects": [ "AddFrostDamage", "AddFrostResistance" ] }, + + { "Name": "$mod_epicloot_epic_shock", "MagicEffects": [ "AddLightningDamage", "AddLightningResistance" ] }, + { "Name": "$mod_epicloot_epic_storm", "MagicEffects": [ "AddLightningDamage", "AddLightningResistance" ] }, + { "Name": "$mod_epicloot_epic_tempest", "MagicEffects": [ "AddLightningDamage", "AddLightningResistance" ] }, + + { "Name": "$mod_epicloot_epic_blight", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + { "Name": "$mod_epicloot_epic_caustic", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + { "Name": "$mod_epicloot_epic_contagion", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + { "Name": "$mod_epicloot_epic_corruption", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + { "Name": "$mod_epicloot_epic_toxic", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + { "Name": "$mod_epicloot_epic_venom", "MagicEffects": [ "AddPoisonDamage", "AddPoisonResistance" ] }, + + { "Name": "$mod_epicloot_epic_eidolon", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] }, + { "Name": "$mod_epicloot_epic_phantasm", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] }, + { "Name": "$mod_epicloot_epic_soul", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] }, + { "Name": "$mod_epicloot_epic_spectre", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] }, + { "Name": "$mod_epicloot_epic_spirit", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] }, + { "Name": "$mod_epicloot_epic_wraith", "MagicEffects": [ "AddSpiritDamage", "AddSpiritResistance" ] } + ], + "Names" : [ + { "Name": "$mod_epicloot_epic_aegis", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_apparatus", "Types": [ "Tool" ] }, + { "Name": "$mod_epicloot_epic_badge", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_band", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_bar", "Skills": [ "Clubs", "Spears" ] }, + { "Name": "$mod_epicloot_epic_barb", "Skills": [ "Swords", "Knives", "Spears" ] }, + { "Name": "$mod_epicloot_epic_beacon", "Types": [ "Torch" ], "Skills": [ "Clubs", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_blade", "Skills": [ "Swords" ] }, + { "Name": "$mod_epicloot_epic_bludgeon", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_bolt", "Skills": [ "Bows" ] }, + { "Name": "$mod_epicloot_epic_branch", "Skills": [ "Bows", "Pickaxes" ] }, + { "Name": "$mod_epicloot_epic_brand", "Skills": [ "Swords", "Axes" ] }, + { "Name": "$mod_epicloot_epic_breaker", "Skills": [ "Axes", "Clubs" ] }, + { "Name": "$mod_epicloot_epic_brow", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_buckle", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_bulwark", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_carapace", "Types": [ "Chest" ] }, + { "Name": "$mod_epicloot_epic_casque", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_chain", "Types": [ "Chest" ] }, + { "Name": "$mod_epicloot_epic_charm", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_chopper", "Skills": [ "Axes" ] }, + { "Name": "$mod_epicloot_epic_cleaver", "Skills": [ "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_cloak", "Types": [ "Chest", "Shoulder" ] }, + { "Name": "$mod_epicloot_epic_cowl", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_crest", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_crown", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_crusher", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_dart", "Skills": [ "Bows", "Spears" ] }, + { "Name": "$mod_epicloot_epic_edge", "Skills": [ "Swords", "Knives", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_emblem", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_eye", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_fang", "Skills": [ "Swords", "Knives", "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_flange", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_fletch", "Skills": [ "Bows" ] }, + { "Name": "$mod_epicloot_epic_flight", "Skills": [ "Bows" ] }, + { "Name": "$mod_epicloot_epic_fortress", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_gadget", "Types": [ "Tool" ] }, + { "Name": "$mod_epicloot_epic_gizmo", "Types": [ "Tool" ] }, + { "Name": "$mod_epicloot_epic_gnash", "Skills": [ "Axes", "Clubs", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_gorget", "Types": [ "Chest", "Shoulder" ] }, + { "Name": "$mod_epicloot_epic_greaves", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_grinder", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_guard", "Types": [ "Chest" ], "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_harness", "Types": [ "Chest" ] }, + { "Name": "$mod_epicloot_epic_heart", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_hew", "Skills": [ "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_horn", "Skills": [ "Bows", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_impaler", "Skills": [ "Swords", "Spears" ] }, + { "Name": "$mod_epicloot_epic_jack", "Types": [ "Chest" ] }, + { "Name": "$mod_epicloot_epic_knot", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_lock", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_mallet", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_mangler", "Skills": [ "Axes", "Clubs", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_mantle", "Types": [ "Chest", "Shoulder" ] }, + { "Name": "$mod_epicloot_epic_mark", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_mask", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_nails", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_needle", "Skills": [ "Bows", "Knives" ] }, + { "Name": "$mod_epicloot_epic_nock", "Skills": [ "Bows" ] }, + { "Name": "$mod_epicloot_epic_pelt", "Types": [ "Chest", "Shoulder" ] }, + { "Name": "$mod_epicloot_epic_pickaxe", "Skills": [ "Pickaxes" ] }, + { "Name": "$mod_epicloot_epic_pickhammer", "Skills": [ "Pickaxes" ] }, + { "Name": "$mod_epicloot_epic_razor", "Skills": [ "Swords", "Knives", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_reaver", "Skills": [ "Swords", "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_rend", "Skills": [ "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_scourge", "Skills": [ "Swords", "Knives", "Spears", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_scythe", "Skills": [ "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_sever", "Skills": [ "Swords", "Knives" ] }, + { "Name": "$mod_epicloot_epic_shanks", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_shell", "Types": [ "Helmet", "Chest" ], "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_shield", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_shroud", "Types": [ "Chest", "Shoulder" ] }, + { "Name": "$mod_epicloot_epic_slayer", "Skills": [ "Swords", "Knives", "Axes", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_smasher", "Skills": [ "Clubs" ] }, + { "Name": "$mod_epicloot_epic_song", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_spike", "Skills": [ "Swords", "Spears", "Polearms", "Pickaxes" ] }, + { "Name": "$mod_epicloot_epic_splitter", "Skills": [ "Axes" ] }, + { "Name": "$mod_epicloot_epic_spur", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_stabber", "Skills": [ "Swords", "Knives" ] }, + { "Name": "$mod_epicloot_epic_stalker", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_sting", "Skills": [ "Bows", "Knives" ] }, + { "Name": "$mod_epicloot_epic_suit", "Types": [ "Chest" ] }, + { "Name": "$mod_epicloot_epic_sunder", "Skills": [ "Axes", "Clubs" ] }, + { "Name": "$mod_epicloot_epic_sword", "Skills": [ "Swords" ] }, + { "Name": "$mod_epicloot_epic_talisman", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_thirst", "Skills": [ "Axes", "Swords", "Bows", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_tool", "Types": [ "Tool" ], "Skills": [ "Pickaxes" ] }, + { "Name": "$mod_epicloot_epic_tower", "Skills": [ "Blocking" ] }, + { "Name": "$mod_epicloot_epic_track", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_trample", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_treader", "Types": [ "Legs" ] }, + { "Name": "$mod_epicloot_epic_turn", "Types": [ "Utility" ] }, + { "Name": "$mod_epicloot_epic_veil", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_visage", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_visor", "Types": [ "Helmet" ] }, + { "Name": "$mod_epicloot_epic_ward", "Types": [ "Chest" ] , "Skills": [ "Blocking" ]}, + { "Name": "$mod_epicloot_epic_wrack", "Skills": [ "Axes", "Clubs", "Polearms" ] }, + { "Name": "$mod_epicloot_epic_wrap", "Types": [ "Chest", "Shoulder" ] } + ] + }, + "Legendary": [ + { "Name": "$mod_epicloot_l_fafnir", "Types": [ "OneHandedWeapon" ], "Skills": [ "Swords" ] }, + { "Name": "$mod_epicloot_l_luff", "Types": [ "OneHandedWeapon"], "Skills": [ "Spears" ] } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/legendaries.json b/ValheimClient/BepInEx/plugins/EpicLoot/legendaries.json new file mode 100644 index 0000000..944be40 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/legendaries.json @@ -0,0 +1,430 @@ +{ + // Legendary Items + //////////////////////////////////////////////////////////////////////////////////////////////////////////////// + "LegendaryItems": [ + { + "ID": "Dyrnwyn", + "Name": "$mod_epicloot_l_dyrnwyn", + "Description": "$mod_epicloot_l_dyrnwyn_desc", + "EquipFx": "FireAura", + "EquipFxMode": "EquipRoot", + "Requirements": { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Swords" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddFireDamage", "Values": { "MinValue": 36, "MaxValue": 48, "Increment": 1 } } + ] + }, + { + "ID": "SleipnirsHoof", + "Name": "$mod_epicloot_l_sleipnirshoof", + "Description": "$mod_epicloot_l_sleipnirshoof_desc", + "EquipFx": "WhiteAura", + "EquipFxMode": "EquipRoot", + "Requirements": { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Clubs" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ModifyMovementSpeed", "Values": { "MinValue": 10, "MaxValue": 14, "Increment": 1 } } + ] + }, + { + "ID": "Gungnir", + "Name": "$mod_epicloot_l_gungnir", + "Description": "$mod_epicloot_l_gungnir_desc", + "Requirements": { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Spears" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ModifyDamage", "Values": { "MinValue": 20, "MaxValue": 25, "Increment": 1 } } + ] + }, + { + "ID": "Mjolnir", + "Name": "$mod_epicloot_l_mjolnir", + "Description": "$mod_epicloot_l_mjolnir_desc", + "EquipFx": "LightningAuraSledge", + "EquipFxMode": "EquipRoot", + "Requirements": { + "AllowedItemNames": [ "$item_sledge_iron" ] + }, + "GuaranteedEffectCount": 6, + "GuaranteedMagicEffects": [ + { "Type": "ModifyPhysicalDamage", "Values": { "MinValue": 36, "MaxValue": 44, "Increment": 1 } }, + { "Type": "AddLightningDamage", "Values": { "MinValue": 25, "MaxValue": 30, "Increment": 1 } }, + { "Type": "Throwable" }, + { "Type": "RecallWeapon" } + ] + }, + { + "ID": "Lindisfarne", + "Name": "$mod_epicloot_l_lind", + "Description": "$mod_epicloot_l_lind_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Axes" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "Throwable" }, + { "Type": "RecallWeapon" }, + { "Type": "Opportunist", "Values": { "MinValue" : 25, "MaxValue" : 30, "Increment" : 1 } }, + { "Type": "ModifyBackstab", "Values": { "MinValue" : 80, "MaxValue" : 90, "Increment" : 1 } } + ] + }, + { + "ID": "Gram", + "Name": "$mod_epicloot_l_gram", + "Description": "$mod_epicloot_l_gram_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Swords" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddSlashingDamage", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "Executioner", "Values": { "MinValue" : 900, "MaxValue" : 1000, "Increment" : 10 } }, + { "Type": "ModifyPhysicalDamage", "Values": { "MinValue" : 27, "MaxValue" : 30, "Increment" : 1 } } + ] + }, + { + "ID": "Angurvadal", + "Name": "$mod_epicloot_l_angurvadal", + "Description": "$mod_epicloot_l_angurvadal_desc", + "EquipFx": "WhiteAura", + "EquipFxMode" : "EquipRoot", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Swords" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "Glowing" }, + { "Type": "RemoveSpeedPenalty" }, + { "Type": "Opportunist", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyBackstab", "Values": { "MinValue" : 61, "MaxValue" : 80, "Increment" : 1 } } + ] + }, + { + "ID": "Laevateinn", + "Name": "$mod_epicloot_l_lokis", + "Description": "$mod_epicloot_l_lokis_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Knives" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "Throwable" }, + { "Type": "RecallWeapon" }, + { "Type": "AddPoisonDamage", "Values": { "MinValue" : 45, "MaxValue" : 55, "Increment" : 1 } }, + { "Type": "ModifyBackstab", "Values": { "MinValue" : 90, "MaxValue" : 100, "Increment" : 1 } } + ] + }, + { + "ID": "NjordsFavor", + "Name": "$mod_epicloot_l_njord", + "Description": "$mod_epicloot_l_njord_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Knives" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddSlashingDamage", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyMovementSpeed", "Values": { "MinValue" : 10, "MaxValue" : 14, "Increment" : 1 } }, + { "Type": "ModifyAttackSpeed", "Values": { "MinValue" : 20, "MaxValue" : 25, "Increment" : 1 } } + ] + }, + { + "ID": "ValkyriesBlessing", + "Name": "$mod_epicloot_l_valk", + "Description": "$mod_epicloot_l_valk_desc", + "Requirements" : { + "AllowedItemTypes": [ "TwoHandedWeapon" ], + "AllowedSkillTypes": [ "Axes" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ModifyMovementSpeedLowHealth", "Values": { "MinValue" : 25, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyStaminaRegenLowHealth", "Values": { "MinValue" : 70, "MaxValue" : 90, "Increment" : 1 } }, + { "Type": "ModifyDamageLowHealth", "Values": { "MinValue" : 60, "MaxValue" : 80, "Increment" : 1 } }, + { "Type": "ModifyAttackSpeedLowHealth", "Values": { "MinValue" : 90, "MaxValue" : 110, "Increment" : 5 } }, + { "Type": "AvoidDamageTakenLowHealth", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } } + ] + }, + { + "ID": "Skofnung", + "Name": "$mod_epicloot_l_skofnung", + "Description": "$mod_epicloot_l_skofnung_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Swords" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddSlashingDamage", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyAttackStaminaUse", "Values": { "MinValue" : 25, "MaxValue" : 30, "Increment" : 1 } }, + { "Type": "ModifyAttackSpeed", "Values": { "MinValue" : 20, "MaxValue" : 25, "Increment" : 1 } }, + { "Type": "Indestructible" } + ] + }, + { + "ID": "Hofund", + "Name": "$mod_epicloot_l_hofund", + "Description": "$mod_epicloot_l_hofund_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Swords" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddSlashingDamage", "Values": { "MinValue" : 30, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyAttackStaminaUse", "Values": { "MinValue" : 25, "MaxValue" : 30, "Increment" : 1 } }, + { "Type": "LifeSteal", "Values": { "MinValue" : 4, "MaxValue" : 4.5, "Increment" : 0.1 } }, + { "Type": "Indestructible" } + ] + }, + { + "ID": "ShardMace", + "Name": "$mod_epicloot_l_shard", + "Description": "$mod_epicloot_l_shard_desc", + "Requirements" : { + "AllowedItemTypes": [ "OneHandedWeapon" ], + "AllowedSkillTypes": [ "Clubs" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddFireDamage", "Values": { "MinValue" : 12, "MaxValue" : 21, "Increment" : 1 } }, + { "Type": "AddFrostDamage", "Values": { "MinValue" : 6, "MaxValue" : 10, "Increment" : 1 } }, + { "Type": "AddLightningDamage", "Values": { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 } }, + { "Type": "AddPoisonDamage", "Values": { "MinValue" : 22, "MaxValue" : 30, "Increment" : 1 } } + ] + }, + { + "ID": "Bloodmace", + "Name": "$mod_epicloot_l_bloodmace", + "Description": "$mod_epicloot_l_bloodmace_desc", + "Requirements" : { + "AllowedItemNames" : [ "$item_mace_needle" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddPiercingDamage", "Values": { "MinValue" : 15, "MaxValue" : 20, "Increment" : 1 } }, + { "Type": "LifeSteal", "Values": { "MinValue" : 4, "MaxValue" : 4.5, "Increment" : 0.1 } }, + { "Type": "LifeStealLowHealth", "Values": { "MinValue" : 6, "MaxValue" : 8, "Increment" : 0.1 } } + ] + }, + { + "ID": "GunnarsAtgeir", + "Name": "$mod_epicloot_l_gunnar", + "Description": "$mod_epicloot_l_gunnar_desc", + "Requirements" : { + "AllowedItemTypes": [ "TwoHandedWeapon" ], + "AllowedSkillTypes": [ "Polearms" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "AddPiercingDamage", "Values": { "MinValue" : 20, "MaxValue" : 25, "Increment" : 1 } }, + { "Type": "ModifyAttackSpeed", "Values": { "MinValue" : 20, "MaxValue" : 22, "Increment" : 1 } }, + { "Type": "ModifyAttackStaminaUse", "Values": { "MinValue" : 20, "MaxValue" : 22, "Increment" : 1 } } + ] + }, + { + "ID": "SkadiBow", + "Name": "$mod_epicloot_l_skadi", + "Description": "$mod_epicloot_l_skadi_desc", + "Requirements" : { + "AllowedItemTypes": [ "Bow" ], + "AllowedSkillTypes": [ "Bows" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ModifyMovementSpeed", "Values": { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 } }, + { "Type": "RemoveSpeedPenalty" } + ] + }, + { + "ID": "UllrBow", + "Name": "$mod_epicloot_l_ullr", + "Description": "$mod_epicloot_l_ullr_desc", + "Requirements" : { + "AllowedItemTypes": [ "Bow" ], + "AllowedSkillTypes": [ "Bows" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ExplosiveArrows", "Values": { "MinValue" : 35, "MaxValue" : 40, "Increment" : 1 } }, + { "Type": "AddFrostDamage", "Values": { "MinValue" : 6, "MaxValue" : 10, "Increment" : 1 } }, + { "Type": "Indestructible" } + ] + }, + { + "ID": "EndlessBow", + "Name": "$mod_epicloot_l_endbow", + "Description": "$mod_epicloot_l_endbow_desc", + "Requirements" : { + "AllowedItemTypes": [ "Bow" ], + "AllowedSkillTypes": [ "Bows" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "QuickDraw", "Values": { "MinValue" : 25, "MaxValue" : 35, "Increment" : 1 } }, + { "Type": "ModifyAttackStaminaUse", "Values": { "MinValue" : 17, "MaxValue" : 20, "Increment" : 1 } }, + { "Type": "Indestructible" } + ] + }, + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Legendary Set Items + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Heimdall + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "ID": "HeimdallTowerShield", + "Name": "$mod_epicloot_l_heimdalltowershield", + "Description": "$mod_epicloot_l_heimdalltowershield_desc", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Shield" + ], + "ItemHasNoParryPower": true + }, + "GuaranteedMagicEffects": [ + { "Type": "Immovable" } + ] + }, + { + "ID": "HeimdallHelmet", + "Name": "$mod_epicloot_l_heimdallhelmet", + "Description": "$mod_epicloot_l_heimdallhelmet_desc", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Helmet" + ] + }, + "GuaranteedEffectCount": 6, + "GuaranteedMagicEffects": [ + { "Type": "ModifyArmorLowHealth", "Values": { "MinValue": 30, "MaxValue": 35, "Increment": 1 } }, + { "Type": "ModifyStaminaRegenLowHealth", "Values": { "MinValue": 25, "MaxValue": 30, "Increment": 1 } } + ] + }, + { + "ID": "HeimdallChest", + "Name": "$mod_epicloot_l_heimdallchest", + "Description": "$mod_epicloot_l_heimdallchest_desc", + "TextureReplacements": [ { "ItemID": "ArmorPaddedCuirass", "MainTexture": "PaddedArmorMain_Heimdall", "ChestTex": "PaddedArmorChest_Heimdall" } ], + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Chest" + ] + }, + "GuaranteedEffectCount": 6, + "GuaranteedMagicEffects": [ + { "Type": "ModifyArmor", "Values": { "MinValue": 50, "MaxValue": 50, "Increment": 1 } }, + { "Type": "IncreaseStamina", "Values": { "MinValue": 50, "MaxValue": 60, "Increment": 1 } } + ] + }, + { + "ID": "HeimdallLegs", + "Name": "$mod_epicloot_l_heimdalllegs", + "Description": "$mod_epicloot_l_heimdalllegs_desc", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Legs" + ] + }, + "GuaranteedEffectCount": 6, + "GuaranteedMagicEffects": [ + { "Type": "AddMovementSkills", "Values": { "MinValue": 30, "MaxValue": 40, "Increment": 1 } }, + { "Type": "ModifyMovementSpeedLowHealth", "Values": { "MinValue": 25, "MaxValue": 25, "Increment": 1 } } + ] + }, + + // Ragnar + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "ID": "RagnarBattleAxe", + "Name": "$mod_epicloot_l_ragnarbattleaxe", + "Description": "$mod_epicloot_l_ragnarbattleaxe_desc", + "EquipFx": "FrostAuraBattleAxe", + "EquipFxMode": "EquipRoot", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ "TwoHandedWeapon" ], + "AllowedSkillTypes": [ "Axes" ] + }, + "GuaranteedMagicEffects": [ + { "Type": "ModifyPhysicalDamage", "Values": { "MinValue": 15, "MaxValue": 20, "Increment": 1 } }, + { "Type": "AddFrostDamage", "Values": { "MinValue": 30, "MaxValue": 35, "Increment": 1 } } + ] + }, + { + "ID": "RagnarCape", + "Name": "$mod_epicloot_l_ragnarcape", + "Description": "$mod_epicloot_l_ragnarcape_desc", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Shoulder" + ] + }, + "GuaranteedEffectCount": 6 + }, + { + "ID": "RagnarChest", + "Name": "$mod_epicloot_l_ragnarchest", + "Description": "$mod_epicloot_l_ragnarchest_desc", + "TextureReplacements": [ { "ItemID": "ArmorPaddedCuirass", "MainTexture": "paddedarmortest2_d", "ChestTex": "PaddedArmorChest2_d" } ], + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Chest" + ] + }, + "GuaranteedEffectCount": 6 + }, + { + "ID": "RagnarLegs", + "Name": "$mod_epicloot_l_ragnarlegs", + "Description": "$mod_epicloot_l_ragnarlegs_desc", + "IsSetItem": true, + "Requirements": { + "AllowedItemTypes": [ + "Legs" + ] + }, + "GuaranteedEffectCount": 6 + } + ], + + // Legendary Sets + //////////////////////////////////////////////////////////////////////////////////////////////////////////////// + "LegendarySets": [ + { + "ID": "Heimdall", + "Name": "$mod_epicloot_set_heimdall", + "LegendaryIDs": [ + "HeimdallTowerShield", + "HeimdallHelmet", + "HeimdallChest", + "HeimdallLegs" + ], + "SetBonuses": [ + { "Count": 2, "Effect": { "Type": "ModifyBlockPower", "Values": { "MinValue": 200, "MaxValue": 200, "Increment": 1 } } }, + { "Count": 3, "Effect": { "Type": "Bulwark" } }, + { "Count": 4, "Effect": { "Type": "Undying" } } + ] + }, + { + "ID": "Ragnar", + "Name": "$mod_epicloot_set_ragnar", + "LegendaryIDs": [ + "RagnarBattleAxe", + "RagnarCape", + "RagnarChest", + "RagnarLegs" + ], + "SetBonuses": [ + { "Count": 2, "Effect": { "Type": "AddHealthRegen", "Values": { "MinValue": 2, "MaxValue": 2, "Increment": 1 } } }, + { "Count": 2, "Effect": { "Type": "ModifyHealthRegen", "Values": { "MinValue": 100, "MaxValue": 100, "Increment": 1 } } }, + { "Count": 3, "Effect": { "Type": "Berserker" } }, + { "Count": 4, "Effect": { "Type": "FrostDamageAOE", "Values": { "MinValue": 50, "MaxValue": 50, "Increment": 1 } } } + ] + } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/loottables.json b/ValheimClient/BepInEx/plugins/EpicLoot/loottables.json new file mode 100644 index 0000000..abc318d --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/loottables.json @@ -0,0 +1,1366 @@ +{ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // MAGIC EFFECT COUNTS + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + "MagicEffectsCount": { + "Magic": [ [1, 80], [2, 18], [3, 2] ], + "Rare": [ [2, 80], [3, 18], [4, 2] ], + "Epic": [ [3, 80], [4, 18], [5, 2] ], + "Legendary": [ [4, 80], [5, 18], [6, 2] ] + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ITEM RESTRICTIONS + // - It's not recommended to change any of these, but if you wanted to allow Dyrnwyn or tankards for some reason, + // remove them from this list. You really shouldn't remove Unarmed or CAPE TEST from this list. + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + "RestrictedItems": [ + "$item_tankard", + "$item_tankard_odin", + "Unarmed", + "CAPE TEST", + "Cheat sword", + "$item_sword_fire", + "$item_shield_iron_square" + ], + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // ITEM SETS + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + "ItemSets": [ + + // Enchanting Mats + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "EnchantingMats", + "Loot": [ + { "Item": "Tier0Mats" }, + { "Item": "Tier1Mats" }, + { "Item": "Tier2Mats" }, + { "Item": "Tier3Mats" } + ] + }, + { + "Name": "Tier0Mats", + "Loot": [ + { "Item": "DustMagic" }, + { "Item": "EssenceMagic" }, + { "Item": "ReagentMagic" } + ] + }, + { + "Name": "Tier1Mats", + "Loot": [ + { "Item": "DustRare" }, + { "Item": "EssenceRare" }, + { "Item": "ReagentRare" } + ] + }, + { + "Name": "Tier2Mats", + "Loot": [ + { "Item": "DustEpic" }, + { "Item": "EssenceEpic" }, + { "Item": "ReagentEpic" } + ] + }, + { + "Name": "Tier3Mats", + "Loot": [ + { "Item": "DustLegendary" }, + { "Item": "EssenceLegendary" }, + { "Item": "ReagentLegendary" } + ] + }, + { + "Name": "EnchantingRunestones", + "Loot": [ + { "Item": "RunestoneMagic" }, + { "Item": "RunestoneRare" }, + { "Item": "RunestoneEpic" }, + { "Item": "RunestoneLegendary" } + ] + }, + { + "Name": "Tier0Runestone", + "Loot": [ { "Item": "RunestoneMagic" } ] + }, + { + "Name": "Tier1Runestone", + "Loot": [ { "Item": "RunestoneRare" } ] + }, + { + "Name": "Tier2Runestone", + "Loot": [ { "Item": "RunestoneEpic" } ] + }, + { + "Name": "Tier3Runestone", + "Loot": [ { "Item": "RunestoneLegendary" } ] + }, + { + "Name": "ModUtility", + "Loot": [ + { "Item": "LeatherBelt" }, + { "Item": "SilverRing" }, + { "Item": "GoldRubyRing" } + ] + }, + + // Tier 0 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "Tier0Weapons", + "Loot": [ + { "Item": "Club", "Rarity": [ 97, 2, 1, 0 ] }, + { "Item": "AxeStone", "Rarity": [ 97, 2, 1, 0 ] }, + { "Item": "Torch" , "Rarity": [ 97, 2, 1, 0 ] } + ] + }, + { + "Name": "Tier0Tools", + "Loot": [ + { "Item": "Hammer", "Rarity": [ 97, 2, 1, 0 ] }, + { "Item": "Hoe", "Rarity": [ 97, 2, 1, 0 ] } + ] + }, + { + "Name": "Tier0Armor", + "Loot": [ + { "Item": "ArmorRagsLegs", "Rarity": [ 97, 2, 1, 0 ] }, + { "Item": "ArmorRagsChest", "Rarity": [ 97, 2, 1, 0 ] } + ] + }, + { + "Name": "Tier0Shields", + "Loot": [ + { "Item": "ShieldWood", "Rarity": [ 97, 2, 1, 0 ] }, + { "Item": "ShieldWoodTower", "Rarity": [ 97, 2, 1, 0 ] } + ] + }, + { + "Name": "Tier0Everything", + "Loot": [ + { "Item": "Tier0Weapons" }, + { "Item": "Tier0Tools" }, + { "Item": "Tier0Armor" }, + { "Item": "Tier0Shields" } + ] + }, + + // Tier 1 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "Tier1Weapons", + "Loot": [ + { "Item": "AxeFlint", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "SpearFlint", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "KnifeFlint", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "Bow", "Rarity": [ 94, 3, 2, 1 ] } + ] + }, + { + "Name": "Tier1Armor", + "Loot": [ + { "Item": "ArmorLeatherLegs", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "ArmorLeatherChest", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "HelmetLeather", "Rarity": [ 94, 3, 2, 1 ] }, + { "Item": "CapeDeerHide", "Rarity": [ 94, 3, 2, 1 ] } + ] + }, + { + "Name": "Tier1Tools", + "Loot": [ + { "Item": "PickaxeAntler", "Rarity": [ 94, 3, 2, 1 ] } + ] + }, + { + "Name": "Tier1Everything", + "Loot": [ + { "Item": "Tier1Weapons" }, + { "Item": "Tier1Armor" }, + { "Item": "Tier1Tools" } + ] + }, + + // Tier 2 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "TrollArmor", + "Loot": [ + { "Item": "ArmorTrollLeatherLegs", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "ArmorTrollLeatherChest", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "HelmetTrollLeather", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "CapeTrollHide", "Rarity": [ 80, 14, 4, 2 ] } + ] + }, + { + "Name": "Tier2Weapons", + "Loot": [ + { "Item": "KnifeCopper", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "SledgeStagbreaker", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "SwordBronze", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "AxeBronze", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "MaceBronze", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "AtgeirBronze", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "SpearBronze", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "BowFineWood", "Weight": 1, "Rarity": [ 80, 14, 4, 2 ] } + ] + }, + { + "Name": "Tier2Armor", + "Loot": [ + { "Item": "ArmorBronzeLegs", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "ArmorBronzeChest", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "HelmetBronze", "Rarity": [ 80, 14, 4, 2 ] } + ] + }, + { + "Name": "Tier2Shields", + "Loot": [ + { "Item": "ShieldBronzeBuckler", "Rarity": [ 80, 14, 4, 2 ] } + ] + }, + { + "Name": "Tier2Tools", + "Loot": [ + { "Item": "PickaxeBronze", "Rarity": [ 80, 14, 4, 2 ] }, + { "Item": "Cultivator", "Rarity": [ 80, 14, 4, 2 ] } + ] + }, + { + "Name": "Tier2Everything", + "Loot": [ + { "Item": "TrollArmor" }, + { "Item": "Tier2Weapons" }, + { "Item": "Tier2Armor" }, + { "Item": "Tier2Shields" }, + { "Item": "Tier2Tools" } + ] + }, + + // Tier 3 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "Tier3Weapons", + "Loot": [ + { "Item": "Battleaxe", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "SwordIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "AxeIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "SledgeIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "MaceIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "AtgeirIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "SpearElderbark", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] } + ] + }, + { + "Name": "Tier3Armor", + "Loot": [ + { "Item": "ArmorIronLegs", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "ArmorIronChest", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "HelmetIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] } + ] + }, + { + "Name": "Tier3Shields", + "Loot": [ + { "Item": "ShieldBanded", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] }, + { "Item": "ShieldIronTower", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] } + ] + }, + { + "Name": "Tier3Tools", + "Loot": [ + { "Item": "PickaxeIron", "Weight": 1, "Rarity": [ 38, 50, 8, 4 ] } + ] + }, + { + "Name": "Tier3Everything", + "Loot": [ + { "Item": "Tier3Weapons" }, + { "Item": "Tier3Armor" }, + { "Item": "Tier3Shields" }, + { "Item": "Tier3Tools" } + ] + }, + + // Tier 4 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "Tier4Weapons", + "Loot": [ + { "Item": "SwordSilver", "Weight": 10, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "SpearWolfFang", "Weight": 10, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "MaceSilver", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "BowDraugrFang", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] } + ] + }, + { + "Name": "Tier4Armor", + "Loot": [ + { "Item": "ArmorWolfLegs", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "ArmorWolfChest", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "HelmetDrake", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "CapeWolf", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] } + ] + }, + { + "Name": "Tier4Shields", + "Loot": [ + { "Item": "ShieldSilver", "Weight": 5, "Rarity": [ 5, 35, 50, 20 ] }, + { "Item": "ShieldSerpentscale", "Weight": 1, "Rarity": [ 5, 35, 50, 20 ] } + ] + }, + { + "Name": "Tier4Everything", + "Loot": [ + { "Item": "Tier4Weapons" }, + { "Item": "Tier4Armor" }, + { "Item": "Tier4Shields" } + ] + }, + + // Tier 5 Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Name": "Tier5Weapons", + "Loot": [ + { "Item": "AtgeirBlackmetal", "Weight": 3, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "AxeBlackMetal", "Weight": 3, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "KnifeBlackMetal", "Weight": 3, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "SwordBlackmetal", "Weight": 3, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "MaceNeedle", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] } + ] + }, + { + "Name": "Tier5Armor", + "Loot": [ + { "Item": "ArmorPaddedGreaves", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "ArmorPaddedCuirass", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "HelmetPadded", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "CapeLinen", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "CapeLox", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] } + ] + }, + { + "Name": "Tier5Shields", + "Loot": [ + { "Item": "ShieldBlackmetal", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] }, + { "Item": "ShieldBlackmetalTower", "Weight": 1, "Rarity": [ 0, 15, 60, 25 ] } + ] + }, + { + "Name": "Tier5Everything", + "Loot": [ + { "Item": "Tier5Weapons" }, + { "Item": "Tier5Armor" }, + { "Item": "Tier5Shields" } + ] + } + ], + "LootTables": [ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // CREATURES + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Tier 0 Mobs (Greyling, Deer, Boar, Neck) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier0Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 100] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 100, 0, 0, 0 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 95], [1, 5] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 95, 5, 0, 0 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 90], [1, 10] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 90, 10, 0, 0 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 80], [1, 20] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 80, 15, 5, 0 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 70], [1, 30] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 70, 19, 10, 1 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 60], [1, 39], [2, 1] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 60, 20, 15, 5 ] } + ] + } + ] + }, + // Tier 1 Mobs (Skeleton, Greydwarf) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier1Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 95], [1, 5] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 10, "Rarity": [ 75, 25, 0, 0 ] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 75, 25, 0, 0 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 90], [1, 10] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 5, "Rarity": [ 70, 29, 1, 0 ] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 70, 29, 1, 0 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 85], [1, 15] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 3, "Rarity": [ 63, 34, 2, 1 ] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 63, 34, 2, 1 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 75], [1, 25] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 53, 40, 5, 2 ] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 53, 40, 5, 2 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 65], [1, 34], [2, 1] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 45, 43, 9, 3 ] }, + { "Item": "Tier1Everything", "Weight": 5, "Rarity": [ 45, 43, 9, 3 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 55], [1, 43], [2, 2] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 35, 45, 15, 5 ] }, + { "Item": "Tier1Everything", "Weight": 10, "Rarity": [ 35, 45, 15, 5 ] } + ] + } + ] + }, + // Tier 2 Mobs (Greydwarf Brute, Greydwarf Shaman, Poison Skeleton) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier2Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 90], [1, 10] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 50, 47, 2, 1 ] }, + { "Item": "Tier0Shields", "Weight": 1, "Rarity": [ 50, 47, 2, 1 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 80], [1, 20] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 5, "Rarity": [ 40, 53, 5, 2 ] }, + { "Item": "Tier0Shields", "Weight": 5, "Rarity": [ 40, 53, 5, 2 ] }, + { "Item": "TrollArmor", "Weight": 1, "Rarity": [ 40, 53, 5, 2 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 70], [1, 30] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 3, "Rarity": [ 29, 59, 9, 3 ] }, + { "Item": "Tier0Shields", "Weight": 3, "Rarity": [ 29, 59, 9, 3 ] }, + { "Item": "TrollArmor", "Weight": 1, "Rarity": [ 29, 59, 9, 3 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 55], [1, 44], [2, 1] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 15, 65, 15, 5 ] }, + { "Item": "Tier0Shields", "Weight": 1, "Rarity": [ 15, 65, 15, 5 ] }, + { "Item": "TrollArmor", "Weight": 1, "Rarity": [ 15, 65, 15, 5 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 40], [1, 58], [2, 2] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 0, 70, 20, 10 ] }, + { "Item": "Tier2Everything", "Weight": 5, "Rarity": [ 0, 70, 20, 10 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 25], [1, 71], [2, 3], [3, 1] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 0, 60, 25, 15 ] }, + { "Item": "Tier2Everything", "Weight": 10, "Rarity": [ 0, 60, 25, 15 ] } + ] + } + ] + }, + // Tier 3 Mobs (Troll, Ghost, Blob, Draugr, Draugr Archer, Leech, Surtling) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier3Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 85], [1, 15] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 24, 73, 2, 1 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 75], [1, 25] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 5, "Rarity": [ 15, 78, 5, 2 ] }, + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 15, 78, 5, 2 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 65], [1, 34], [2, 1] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 3, "Rarity": [ 5, 83, 9, 3 ] }, + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 5, 83, 9, 3 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 50], [1, 48], [2, 2] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 0, 80, 15, 5 ] }, + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 0, 80, 15, 5 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 35], [1, 61], [2, 3], [3, 1] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 0, 70, 25, 5 ] }, + { "Item": "Tier3Everything", "Weight": 5, "Rarity": [ 0, 70, 25, 5 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 20], [1, 74], [2, 4], [3, 2] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 0, 60, 35, 5 ] }, + { "Item": "Tier3Everything", "Weight": 10, "Rarity": [ 0, 60, 35, 5 ] } + ] + } + ] + }, + // Tier 4 Mobs (Draugr Elite, Oozer, Wraith, Wolf, Drake) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier4Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 80], [1, 20] ], + "Loot": [ + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 0, 75, 24, 1 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 65], [1, 34], [2, 1] ], + "Loot": [ + { "Item": "EnchantingRunestones", "Weight": 5, "Rarity": [ 0, 55, 40, 5 ] }, + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 55, 44, 1 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 50], [1, 48], [2, 2] ], + "Loot": [ + { "Item": "EnchantingRunestones", "Weight": 3, "Rarity": [ 0, 35, 55, 10 ] }, + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 35, 64, 1 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 30], [1, 66], [2, 3], [3, 1] ], + "Loot": [ + { "Item": "EnchantingRunestones", "Weight": 1, "Rarity": [ 0, 10, 80, 10 ] }, + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 10, 85, 5 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 10], [1, 84], [2, 4], [3, 2] ], + "Loot": [ + { "Item": "EnchantingRunestones", "Weight": 1, "Rarity": [ 0, 0, 90, 10 ] }, + { "Item": "Tier4Everything", "Weight": 5, "Rarity": [ 0, 0, 95, 5 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 0], [1, 92], [2, 5], [3, 3] ], + "Loot": [ + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 0, 0, 95, 5 ] }, + { "Item": "Tier4Everything", "Weight": 10, "Rarity": [ 0, 0, 95, 5 ] } + ] + } + ] + }, + // Tier 5 Mobs (Stone Golem, Fenring, Serpent, Deathsquito, Lox, Fuling, Fuling Archer) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier5Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 75], [1, 24], [2, 1] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 50, 49, 1 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 60], [1, 38], [2, 2] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 5, "Rarity": [ 0, 30, 65, 5 ] }, + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 30, 65, 5 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 45], [1, 51], [2, 3], [3, 1] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 3, "Rarity": [ 0, 10, 85, 5 ] }, + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 10, 85, 5 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 25], [1, 69], [2, 4], [3, 2] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 0, 95, 5 ] }, + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 95, 5 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 5], [1, 87], [2, 5], [3, 3] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 0, 95, 5 ] }, + { "Item": "Tier5Everything", "Weight": 5, "Rarity": [ 0, 0, 95, 5 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 0], [1, 86], [2, 10], [3, 4] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 0, 90, 10 ] }, + { "Item": "Tier5Everything", "Weight": 10, "Rarity": [ 0, 0, 90, 10 ] } + ] + } + ] + }, + // Tier 6 Mobs (Fuling Berserker, Fuling Shaman) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Tier6Mob", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [0, 70], [1, 28], [2, 2] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 25, 73, 2 ] } + ] + }, + { + "Level": 2, + "Drops": [ [0, 50], [1, 46], [2, 3], [3, 1] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 5, 90, 5 ] } + ] + }, + { + "Level": 3, + "Drops": [ [0, 30], [1, 64], [2, 4], [3, 2] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 95, 5 ] } + ] + }, + { + "Level": 4, + "Drops": [ [0, 5], [1, 87], [2, 5], [3, 3] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 90, 10 ] } + ] + }, + { + "Level": 5, + "Drops": [ [0, 0], [1, 86], [2, 10], [3, 4] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 90, 10 ] } + ] + }, + { + "Level": 6, + "Drops": [ [0, 0], [1, 80], [2, 15], [3, 5] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 85, 15 ] } + ] + } + ] + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 0 Mobs (Greyling, Deer, Boar, Neck) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Greyling + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Greyling", + "RefObject": "Tier0Mob" + }, + // Deer + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Deer", + "RefObject": "Tier0Mob" + }, + // Boar + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Boar", + "RefObject": "Tier0Mob" + }, + // Neck + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Neck", + "RefObject": "Tier0Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 1 Mobs (Greydwarf, Skeleton) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Greydwarf + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Greydwarf", + "RefObject": "Tier1Mob" + }, + // Skeleton + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Skeleton", + "RefObject": "Tier1Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 2 Mobs (Greydwarf Brute, Greydwarf Shaman, Rancid Remains) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Greydwarf Brute (Greydwarf_Elite) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Greydwarf_Elite", + "RefObject": "Tier2Mob" + }, + // Greydwarf Shaman (Greydwarf_Shaman) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Greydwarf_Shaman", + "RefObject": "Tier2Mob" + }, + // Rancid Remains (Skeleton_Poison) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Skeleton_Poison", + "RefObject": "Tier2Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 3 Mobs (Troll, Ghost, Blob, Draugr, Draugr Archer, Leech, Surtling) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Troll + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Troll", + "RefObject": "Tier3Mob" + }, + // Ghost + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Ghost", + "RefObject": "Tier3Mob" + }, + // Blob + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Blob", + "RefObject": "Tier3Mob" + }, + // Draugr + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Draugr", + "RefObject": "Tier3Mob" + }, + // Draugr Archer + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Draugr_Ranged", + "RefObject": "Tier3Mob" + }, + // Leech + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Leech", + "RefObject": "Tier3Mob" + }, + // Surtling + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Surtling", + "RefObject": "Tier3Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 4 Mobs (Draugr Elite, Oozer, Wraith, Wolf, Drake) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Draugr Elite (Draugr_Elite) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Draugr_Elite", + "RefObject": "Tier4Mob" + }, + // Oozer (BlobElite) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "BlobElite", + "RefObject": "Tier4Mob" + }, + // Wraith + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Wraith", + "RefObject": "Tier4Mob" + }, + // Wolf + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Wolf", + "RefObject": "Tier4Mob" + }, + // Drake (Hatchling) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Hatchling", + "RefObject": "Tier4Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //Begin Tier 5 Mobs (Stone Golem, Fenring, Serpent, Deathsquito, Lox, Fuling, Fuling Archer) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Stone Golem (StoneGolem) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "StoneGolem", + "RefObject": "Tier5Mob" + }, + // Fenring + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Fenring", + "RefObject": "Tier5Mob" + }, + // Serpent + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Serpent", + "RefObject": "Tier5Mob" + }, + // Deathsquito + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Deathsquito", + "RefObject": "Tier5Mob" + }, + // Lox + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Lox", + "RefObject": "Tier5Mob" + }, + // Fuling (Goblin) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Goblin", + "RefObject": "Tier5Mob" + }, + // Fuling Archer (GoblinArcher) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "GoblinArcher", + "RefObject": "Tier5Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tier 6 Mobs (Fuling Berserker, Fuling Shaman) + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Fuling Berserker (GoblinBrute) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "GoblinBrute", + "RefObject": "Tier6Mob" + }, + // Fuling Shaman (GoblinShaman) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "GoblinShaman", + "RefObject": "Tier6Mob" + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // BOSSES + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + // Eikthyr + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Eikthyr", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [1, 70], [2, 30], [4, 0] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 177, 20, 2, 1 ] }, + { "Item": "Tier0Shields", "Weight": 1, "Rarity": [ 177, 20, 2, 1 ] }, + { "Item": "SledgeStagbreaker", "Weight": 1, "Rarity": [ 177, 20, 2, 1 ] } + ] + }, + { + "Level": 2, + "Drops": [ [1, 60], [2, 40], [4, 0] ], + "Loot": [ + { "Item": "Eikthyr.1", "Weight": 1, "Rarity": [ 79, 17, 3, 1 ] } + ] + }, + { + "Level": 3, + "Drops": [ [1, 50], [2, 50], [4, 0] ], + "Loot": [ + { "Item": "Eikthyr.1", "Weight": 1, "Rarity": [ 69, 24, 5, 2 ] } + ] + }, + { + "Level": 4, + "Drops": [ [1, 35], [2, 60], [3, 5], [4, 0] ], + "Loot": [ + { "Item": "Eikthyr.1", "Weight": 1, "Rarity": [ 53, 32, 10, 5 ] } + ] + }, + { + "Level": 5, + "Drops": [ [1, 20], [2, 70], [3, 10], [4, 0] ], + "Loot": [ + { "Item": "Eikthyr.1", "Weight": 1, "Rarity": [ 35, 40, 15, 10 ] } + ] + }, + { + "Level": 6, + "Drops": [ [1, 5], [2, 80], [3, 15], [4, 0] ], + "Loot": [ + { "Item": "Eikthyr.1", "Weight": 1, "Rarity": [ 20, 45, 20, 15 ] } + ] + } + ] + }, + // gd_king (The Elder) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "gd_king", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [1, 35], [2, 55], [3, 10], [4, 0] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 59, 29, 10, 2 ] } + ] + }, + { + "Level": 2, + "Drops": [ [1, 20], [2, 65], [3, 15], [4, 0] ], + "Loot": [ + { "Item": "gd_king.1", "Weight": 1, "Rarity": [ 43, 37, 15, 5 ] } + ] + }, + { + "Level": 3, + "Drops": [ [1, 5], [2, 75], [3, 20], [4, 0] ], + "Loot": [ + { "Item": "gd_king.1", "Weight": 1, "Rarity": [ 25, 45, 20, 10 ] } + ] + }, + { + "Level": 4, + "Drops": [ [1, 0], [2, 70], [3, 30], [4, 0] ], + "Loot": [ + { "Item": "gd_king.1", "Weight": 1, "Rarity": [ 4, 50, 30, 15 ] } + ] + }, + { + "Level": 5, + "Drops": [ [1, 0], [2, 60], [3, 40], [4, 0] ], + "Loot": [ + { "Item": "gd_king.1", "Weight": 1, "Rarity": [ 0, 40, 40, 20 ] } + ] + }, + { + "Level": 6, + "Drops": [ [1, 0], [2, 40], [3, 50], [4, 10] ], + "Loot": [ + { "Item": "gd_king.1", "Weight": 1, "Rarity": [ 0, 25, 50, 25 ] } + ] + } + ] + }, + // Bonemass + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Bonemass", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [1, 0], [2, 60], [3, 35], [4, 5] ], + "Loot": [ + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 20, 60, 15, 5 ] } + ] + }, + { + "Level": 2, + "Drops": [ [1, 0], [2, 45], [3, 45], [4, 10] ], + "Loot": [ + { "Item": "Bonemass.1", "Weight": 1, "Rarity": [ 0, 70, 20, 10 ] } + ] + }, + { + "Level": 3, + "Drops": [ [1, 0], [2, 30], [3, 55], [4, 15] ], + "Loot": [ + { "Item": "Bonemass.1", "Weight": 1, "Rarity": [ 0, 50, 35, 15 ] } + ] + }, + { + "Level": 4, + "Drops": [ [1, 0], [2, 10], [3, 65], [4, 25] ], + "Loot": [ + { "Item": "Bonemass.1", "Weight": 1, "Rarity": [ 0, 30, 50, 20 ] } + ] + }, + { + "Level": 5, + "Drops": [ [1, 0], [3, 65], [4, 35] ], + "Loot": [ + { "Item": "Bonemass.1", "Weight": 1, "Rarity": [ 0, 10, 65, 25 ] } + ] + }, + { + "Level": 6, + "Drops": [ [1, 0], [3, 50], [4, 50] ], + "Loot": [ + { "Item": "Bonemass.1", "Weight": 1, "Rarity": [ 0, 0, 70, 30 ] } + ] + } + ] + }, + // Moder (Dragon) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "Dragon", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [2, 20], [3, 40], [4, 30], [5, 10] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 1, "Rarity": [ 0, 40, 50, 10 ] } + ] + }, + { + "Level": 2, + "Drops": [ [2, 20], [3, 50], [4, 30], [5, 15] ], + "Loot": [ + { "Item": "Dragon.1", "Weight": 1, "Rarity": [ 0, 20, 65, 15 ] } + ] + }, + { + "Level": 3, + "Drops": [ [3, 50], [4, 30], [5, 20] ], + "Loot": [ + { "Item": "Dragon.1", "Weight": 1, "Rarity": [ 0, 0, 80, 20 ] } + ] + }, + { + "Level": 4, + "Drops": [ [3, 20], [4, 55], [5, 25] ], + "Loot": [ + { "Item": "Dragon.1", "Weight": 1, "Rarity": [ 0, 0, 75, 25 ] } + ] + }, + { + "Level": 5, + "Drops": [ [3, 5], [4, 65], [5, 30] ], + "Loot": [ + { "Item": "Dragon.1", "Weight": 1, "Rarity": [ 0, 0, 70, 30 ] } + ] + }, + { + "Level": 6, + "Drops": [ [4, 60], [5, 35], [6, 5] ], + "Loot": [ + { "Item": "Dragon.1", "Weight": 1, "Rarity": [ 0, 0, 60, 30 ] } + ] + } + ] + }, + // Yagluth (GoblinKing) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "GoblinKing", + "LeveledLoot": [ + { + "Level": 1, + "Drops": [ [3, 20], [4, 60], [5, 15], [6, 5] ], + "Loot": [ + { "Item": "Tier5Everything", "Weight": 1, "Rarity": [ 0, 0, 80, 20 ] } + ] + }, + { + "Level": 2, + "Drops": [ [4, 70], [5, 20], [6, 10] ], + "Loot": [ + { "Item": "GoblinKing.1", "Weight": 1, "Rarity": [ 0, 0, 70, 30 ] } + ] + }, + { + "Level": 3, + "Drops": [ [4, 45], [5, 40], [6, 15] ], + "Loot": [ + { "Item": "GoblinKing.1", "Weight": 1, "Rarity": [ 0, 0, 60, 40 ] } + ] + }, + { + "Level": 4, + "Drops": [ [4, 25], [5, 50], [6, 25] ], + "Loot": [ + { "Item": "GoblinKing.1", "Weight": 1, "Rarity": [ 0, 0, 40, 60 ] } + ] + }, + { + "Level": 5, + "Drops": [ [4, 5], [5, 60], [6, 30], [7, 5] ], + "Loot": [ + { "Item": "GoblinKing.1", "Weight": 1, "Rarity": [ 0, 0, 20, 80 ] } + ] + }, + { + "Level": 6, + "Drops": [ [5, 50], [6, 40], [7, 10] ], + "Loot": [ + { "Item": "GoblinKing.1", "Weight": 1, "Rarity": [ 0, 0, 0, 100 ] } + ] + } + ] + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // TREASURE CHESTS + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + //TreasureChest_meadows + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_meadows", + "Drops": [ [0, 78], [1, 20], [2, 2] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 4, "Rarity": [ 97, 2, 1, 0] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 97, 2, 1, 0] } + ] + }, + //TreasureChest_blackforest + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_blackforest", + "Drops": [ [0, 70], [1, 30] ], + "Loot": [ + { "Item": "Tier0Shields", "Weight": 1, "Rarity": [ 95, 4, 1, 0] }, + { "Item": "Tier1Everything", "Weight": 2, "Rarity": [ 95, 4, 1, 0] } + ] + }, + //TreasureChest_forestcrypt + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_forestcrypt", + "Drops": [ [0, 68], [1, 20], [2, 10], [3, 2] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 2, "Rarity": [ 95, 4, 1, 0] }, + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 95, 4, 1, 0] } + ] + }, + //TreasureChest_fCrypt (I think this is just a copy of forestcrypt) + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_fCrypt", + "Drops": [ [0, 68], [1, 20], [2, 10], [3, 2] ], + "Loot": [{ "Item": "TreasureChest_forestcrypt.1" }] + }, + //TreasureChest_trollcave + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_trollcave", + "Drops": [ [0, 48], [1, 40], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 90, 9, 1, 0] }, + { "Item": "Tier2Everything", "Weight": 1, "Rarity": [ 90, 9, 1, 0] } + ] + }, + // shipwreck_karve_chest + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "shipwreck_karve_chest", + "Drops": [ [0, 48], [1, 40], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 1, "Rarity": [ 90, 9, 1, 0] }, + { "Item": "Tier1Everything", "Weight": 1, "Rarity": [ 90, 9, 1, 0] } + ] + }, + // TreasureChest_meadows_buried + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_meadows_buried", + "Drops": [ [0, 48], [1, 40], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier0Everything", "Weight": 3, "Rarity": [ 70, 25, 5, 0] }, + { "Item": "Tier1Everything", "Weight": 2, "Rarity": [ 70, 25, 5, 0] } + ] + }, + // TreasureChest_sunkencrypt + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_sunkencrypt", + "Drops": [ [0, 58], [1, 30], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 3, "Rarity": [ 80, 17, 3, 0] }, + { "Item": "Tier3Everything", "Weight": 1, "Rarity": [ 80, 17, 3, 0] } + ] + }, + // TreasureChest_swamp + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_swamp", + "Drops": [ [0, 58], [1, 30], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier2Everything", "Weight": 5 }, + { "Item": "Tier3Everything", "Weight": 1 } + ] + }, + // TreasureChest_mountains + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_mountains", + "Drops": [ [0, 58], [1, 30], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier3Everything", "Weight": 4 }, + { "Item": "Tier4Everything", "Weight": 1 } + ] + }, + // TreasureChest_plains_stone + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_plains_stone", + "Drops": [ [0, 58], [1, 30], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "TreasureChest_heath.1", "Weight": 1 } + ] + }, + // TreasureChest_heath + //////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureChest_heath", + "Drops": [ [0, 58], [1, 30], [2, 20], [3, 2] ], + "Loot": [ + { "Item": "Tier4Everything", "Weight": 3 }, + { "Item": "Tier5Everything", "Weight": 1 } + ] + }, + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // TREASURE MAP CHESTS + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Object": "TreasureMapChest_Meadows", + "Drops": [ [3, 80], [4, 15], [5, 5] ], + "Loot": [ + { "Item": "Tier0Runestone", "Weight": 1, "Rarity": [ 40, 50, 9, 1] } + ] + }, + { + "Object": "TreasureMapChest_BlackForest", + "Drops": [ [3, 80], [4, 15], [5, 5] ], + "Loot": [ + { "Item": "Tier0Runestone", "Weight": 1, "Rarity": [ 40, 50, 9, 1] } + ] + }, + { + "Object": "TreasureMapChest_Swamp", + "Drops": [ [3, 80], [4, 15], [5, 5] ], + "Loot": [ + { "Item": "Tier1Runestone", "Weight": 1, "Rarity": [ 10, 45, 50, 5] } + ] + }, + { + "Object": "TreasureMapChest_Mountain", + "Drops": [ [3, 80], [4, 15], [5, 5] ], + "Loot": [ + { "Item": "Tier1Runestone", "Weight": 1, "Rarity": [ 0, 30, 60, 10] } + ] + }, + { + "Object": "TreasureMapChest_Plains", + "Drops": [ [3, 80], [4, 15], [5, 5] ], + "Loot": [ + { "Item": "Tier1Runestone", "Weight": 1, "Rarity": [ 0, 10, 75, 15] } + ] + } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/magiceffects.json b/ValheimClient/BepInEx/plugins/EpicLoot/magiceffects.json new file mode 100644 index 0000000..eceb962 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/magiceffects.json @@ -0,0 +1,2717 @@ +{ + "MagicItemEffects" : [ + { + "Type" : "DvergerCirclet", + "DisplayText" : "$mod_epicloot_me_dvergercirclet_display", + "CanBeAugmented": false, + "Requirements" : { + "NoRoll": true + }, + "Comment" : "Can't be rolled. Just added to make a Magic Item version of this item." + }, + { + "Type" : "Megingjord", + "DisplayText" : "$mod_epicloot_me_megingjord_display", + "CanBeAugmented": false, + "Requirements" : { + "NoRoll": true + }, + "Comment" : "Can't be rolled. Just added to make a Magic Item version of this item." + }, + { + "Type" : "Wishbone", + "DisplayText" : "$mod_epicloot_me_wishbone_display", + "CanBeAugmented": false, + "Requirements" : { + "NoRoll": true + }, + "Comment" : "Can't be rolled. Just added to make a Magic Item version of this item." + }, + { + "Type": "Andvaranaut", + "DisplayText" : "$mod_epicloot_me_andvaranaut_display", + "CanBeAugmented": false, + "Requirements" : { + "NoRoll": true + }, + "Comment" : "Can't be rolled. Just added to make a Magic Item version of this item." + }, + { + "Type" : "ModifyDamage", + "DisplayText" : "$mod_epicloot_me_modifydamage_display", + "Description" : "$mod_epicloot_me_modifydamage_desc", + "CanBeAugmented": true, + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Shoulder", + "Utility" + ], + "NoRoll": false + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 5, "MaxValue" : 15, "Increment" : 1 }, + "Epic" : { "MinValue" : 5, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Comment" : "Can't be rolled. Too powerful?" + }, + { + "Type" : "ModifyPhysicalDamage", + "DisplayText" : "$mod_epicloot_me_modifyphysicaldamage_display", + "Description" : "$mod_epicloot_me_modifyphysicaldamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ItemHasPhysicalDamage" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyphysicaldamage_prefix1", + "$mod_epicloot_me_modifyphysicaldamage_prefix2", + "$mod_epicloot_me_modifyphysicaldamage_prefix3", + "$mod_epicloot_me_modifyphysicaldamage_prefix4", + "$mod_epicloot_me_modifyphysicaldamage_prefix5", + "$mod_epicloot_me_modifyphysicaldamage_prefix6", + "$mod_epicloot_me_modifyphysicaldamage_prefix7", + "$mod_epicloot_me_modifyphysicaldamage_prefix8" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyphysicaldamage_suffix1", + "$mod_epicloot_me_modifyphysicaldamage_suffix2", + "$mod_epicloot_me_modifyphysicaldamage_suffix3", + "$mod_epicloot_me_modifyphysicaldamage_suffix4", + "$mod_epicloot_me_modifyphysicaldamage_suffix5" + ] + }, + { + "Type" : "ModifyElementalDamage", + "DisplayText" : "$mod_epicloot_me_modifyelementaldamage_display", + "Description" : "$mod_epicloot_me_modifyelementaldamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "ItemHasElementalDamage" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyelementaldamage_prefix1", + "$mod_epicloot_me_modifyelementaldamage_prefix2", + "$mod_epicloot_me_modifyelementaldamage_prefix3", + "$mod_epicloot_me_modifyelementaldamage_prefix4" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyelementaldamage_suffix1", + "$mod_epicloot_me_modifyelementaldamage_suffix2", + "$mod_epicloot_me_modifyelementaldamage_suffix3" + ] + }, + { + "Type" : "ModifyDurability", + "DisplayText" : "$mod_epicloot_me_modifydurability_display", + "Description" : "$mod_epicloot_me_modifydurability_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "Indestructible" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Shield", + "Tool", + "Helmet", + "Chest", + "Legs", + "Shoulder" + ], + "AllowedRarities" : [ + "Magic", + "Rare", + "Epic" + ], + "ItemUsesDurability" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 50, "MaxValue" : 100, "Increment" : 5 }, + "Rare" : { "MinValue" : 50, "MaxValue" : 100, "Increment" : 5 }, + "Epic" : { "MinValue" : 50, "MaxValue" : 100, "Increment" : 5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifydurability_prefix1", + "$mod_epicloot_me_modifydurability_prefix2", + "$mod_epicloot_me_modifydurability_prefix3" + ], + "Suffixes": [ + "$mod_epicloot_me_modifydurability_suffix1", + "$mod_epicloot_me_modifydurability_suffix2", + "$mod_epicloot_me_modifydurability_suffix3", + "$mod_epicloot_me_modifydurability_suffix4" + ] + }, + { + "Type" : "ReduceWeight", + "DisplayText" : "$mod_epicloot_me_reduceweight_display", + "Description" : "$mod_epicloot_me_reduceweight_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "Weightless" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Shield", + "Tool", + "Helmet", + "Chest", + "Legs", + "Shoulder" + ], + "AllowedRarities" : [ + "Magic", + "Rare", + "Epic" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 70, "MaxValue" : 90, "Increment" : 5 }, + "Rare" : { "MinValue" : 70, "MaxValue" : 90, "Increment" : 5 }, + "Epic" : { "MinValue" : 70, "MaxValue" : 90, "Increment" : 5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_reduceweight_prefix1", + "$mod_epicloot_me_reduceweight_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_reduceweight_suffix1" + ] + }, + { + "Type" : "RemoveSpeedPenalty", + "DisplayText" : "$mod_epicloot_me_removespeedpenalty_display", + "Description" : "$mod_epicloot_me_removespeedpenalty_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "ModifyMovementSpeed" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Shield", + "Tool", + "Helmet", + "Chest", + "Legs", + "Shoulder" + ], + "ItemHasNegativeMovementSpeedModifier" : true + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_removespeedpenalty_prefix1", + "$mod_epicloot_me_removespeedpenalty_prefix2", + "$mod_epicloot_me_removespeedpenalty_prefix3" + ], + "Suffixes": [ + "$mod_epicloot_me_removespeedpenalty_suffix1", + "$mod_epicloot_me_removespeedpenalty_suffix2" + ] + }, + { + "Type" : "ModifyBlockPower", + "DisplayText" : "$mod_epicloot_me_modifyblockpower_display", + "Description" : "$mod_epicloot_me_modifyblockpower_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ], + "ItemHasBlockPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyblockpower_prefix1", + "$mod_epicloot_me_modifyblockpower_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyblockpower_suffix1", + "$mod_epicloot_me_modifyblockpower_suffix2" + ] + }, + { + "Type" : "ModifyParry", + "DisplayText" : "$mod_epicloot_me_modifyparry_display", + "Description" : "$mod_epicloot_me_modifyparry_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield", + "TwoHandedWeapon" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "ExcludedItemNames": [ + "$item_shield_serpentscale" + ], + "ItemHasParryPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyparry_prefix1", + "$mod_epicloot_me_modifyparry_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyparry_suffix1" + ] + }, + { + "Type" : "ModifyArmor", + "DisplayText" : "$mod_epicloot_me_modifyarmor_display", + "Description" : "$mod_epicloot_me_modifyarmor_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ], + "ItemHasArmor" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyarmor_prefix1", + "$mod_epicloot_me_modifyarmor_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyarmor_suffix1" + ] + }, + { + "Type" : "ModifyBackstab", + "DisplayText" : "$mod_epicloot_me_modifybackstab_display", + "Description" : "$mod_epicloot_me_modifybackstab_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Knives", + "Bows" + ], + "ItemHasBackstabBonus" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifybackstab_prefix1", + "$mod_epicloot_me_modifybackstab_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifybackstab_suffix1", + "$mod_epicloot_me_modifybackstab_suffix2" + ] + }, + { + "Type" : "IncreaseHealth", + "DisplayText" : "$mod_epicloot_me_increasehealth_display", + "Description" : "$mod_epicloot_me_increasehealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 5 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 30, "Increment" : 5 }, + "Epic" : { "MinValue" : 20, "MaxValue" : 35, "Increment" : 5 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 100, "Increment" : 5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_increasehealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_increasehealth_suffix1" + ] + }, + { + "Type" : "IncreaseStamina", + "DisplayText" : "$mod_epicloot_me_increasestamina_display", + "Description" : "$mod_epicloot_me_increasestamina_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Tool" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 5 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 30, "Increment" : 5 }, + "Epic" : { "MinValue" : 20, "MaxValue" : 35, "Increment" : 5 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 100, "Increment" : 5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_increasestamina_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_increasestamina_suffix1" + ] + }, + { + "Type" : "ModifyHealthRegen", + "DisplayText" : "$mod_epicloot_me_modifyhealthregen_display", + "Description" : "$mod_epicloot_me_modifyhealthregen_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 20, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyhealthregen_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyhealthregen_suffix1" + ] + }, + { + "Type" : "AddHealthRegen", + "DisplayText" : "$mod_epicloot_me_addhealthregen_display", + "Description" : "$mod_epicloot_me_addhealthregen_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 0.5, "MaxValue" : 1.5, "Increment" : 0.5 }, + "Rare" : { "MinValue" : 1, "MaxValue" : 3, "Increment" : 0.5 }, + "Epic" : { "MinValue" : 2, "MaxValue" : 4.5, "Increment" : 0.5 }, + "Legendary" : { "MinValue" : 3, "MaxValue" : 20, "Increment" : 0.5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addhealthregen_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addhealthregen_suffix1" + ] + }, + { + "Type" : "ModifyStaminaRegen", + "DisplayText" : "$mod_epicloot_me_modifystaminaregen_display", + "Description" : "$mod_epicloot_me_modifystaminaregen_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Tool" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifystaminaregen_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifystaminaregen_suffix1" + ] + }, + { + "Type" : "AddBluntDamage", + "DisplayText" : "$mod_epicloot_me_addbluntdamage_display", + "Description" : "$mod_epicloot_me_addbluntdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addbluntdamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addbluntdamage_suffix1" + ] + }, + { + "Type" : "AddSlashingDamage", + "DisplayText" : "$mod_epicloot_me_addslashingdamage_display", + "Description" : "$mod_epicloot_me_addslashingdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addslashingdamage_prefix1", + "$mod_epicloot_me_addslashingdamage_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_addslashingdamage_suffix1", + "$mod_epicloot_me_addslashingdamage_suffix2" + ] + }, + { + "Type" : "AddPiercingDamage", + "DisplayText" : "$mod_epicloot_me_addpiercingdamage_display", + "Description" : "$mod_epicloot_me_addpiercingdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpiercingdamage_prefix1", + "$mod_epicloot_me_addpiercingdamage_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_addpiercingdamage_suffix1" + ] + }, + { + "Type" : "AddFireDamage", + "DisplayText" : "$mod_epicloot_me_addfiredamage_display", + "Description" : "$mod_epicloot_me_addfiredamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfiredamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfiredamage_suffix1" + ] + }, + { + "Type" : "AddFrostDamage", + "DisplayText" : "$mod_epicloot_me_addfrostdamage_display", + "Description" : "$mod_epicloot_me_addfrostdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfrostdamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfrostdamage_suffix1" + ] + }, + { + "Type" : "AddLightningDamage", + "DisplayText" : "$mod_epicloot_me_addlightningdamage_display", + "Description" : "$mod_epicloot_me_addlightningdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addlightningdamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addlightningdamage_suffix1" + ] + }, + { + "Type" : "AddPoisonDamage", + "DisplayText" : "$mod_epicloot_me_addpoisondamage_display", + "Description" : "$mod_epicloot_me_addpoisondamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 2, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 4, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 8, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpoisondamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpoisondamage_suffix1" + ] + }, + { + "Type" : "AddSpiritDamage", + "DisplayText" : "$mod_epicloot_me_addspiritdamage_display", + "Description" : "$mod_epicloot_me_addspiritdamage_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "AddBluntDamage", + "AddSlashingDamage", + "AddPiercingDamage", + "AddFireDamage", + "AddFrostDamage", + "AddLightningDamage", + "AddPoisonDamage", + "AddSpiritDamage" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addspiritdamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addspiritdamage_suffix1" + ] + }, + { + "Type" : "AddFireResistance", + "DisplayText" : "$mod_epicloot_me_addfireresistance_display", + "Description" : "$mod_epicloot_me_addfireresistance_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfireresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfireresistance_suffix1" + ] + }, + { + "Type" : "AddFrostResistance", + "DisplayText" : "$mod_epicloot_me_addfrostresistance_display", + "Description" : "$mod_epicloot_me_addfrostresistance_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfrostresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfrostresistance_suffix1" + ] + }, + { + "Type" : "AddLightningResistance", + "DisplayText" : "$mod_epicloot_me_addlightningresistance_display", + "Description" : "$mod_epicloot_me_addlightningresistance_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addlightningresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addlightningresistance_suffix1" + ] + }, + { + "Type" : "AddPoisonResistance", + "DisplayText" : "$mod_epicloot_me_addpoisonresistance_display", + "Description" : "$mod_epicloot_me_addpoisonresistance_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpoisonresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpoisonresistance_suffix1" + ] + }, + { + "Type" : "AddSpiritResistance", + "DisplayText" : "$mod_epicloot_me_addspiritresistance_display", + "Description" : "$mod_epicloot_me_addspiritresistance_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addspiritresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addspiritresistance_suffix1" + ] + }, + { + "Type" : "AddFireResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addfireresistancepercentage_display", + "Description" : "$mod_epicloot_me_addfireresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfireresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfireresistance_suffix1" + ] + }, + { + "Type" : "AddFrostResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addfrostresistancepercentage_display", + "Description" : "$mod_epicloot_me_addfrostresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addfrostresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addfrostresistance_suffix1" + ] + }, + { + "Type" : "AddLightningResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addlightningresistancepercentage_display", + "Description" : "$mod_epicloot_me_addlightningresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addlightningresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addlightningresistance_suffix1" + ] + }, + { + "Type" : "AddPoisonResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addpoisonresistancepercentage_display", + "Description" : "$mod_epicloot_me_addpoisonresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpoisonresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpoisonresistance_suffix1" + ] + }, + { + "Type" : "AddSpiritResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addspiritresistancepercentage_display", + "Description" : "$mod_epicloot_me_addspiritresistancepercentage_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addspiritresistance_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addspiritresistance_suffix1" + ] + }, + { + "Type" : "AddElementalResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addelementalresistancepercentage_display", + "Description" : "$mod_epicloot_me_addelementalresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 2, "Increment" : 1 }, + "Rare" : { "MinValue" : 2, "MaxValue" : 4, "Increment" : 1 }, + "Epic" : { "MinValue" : 4, "MaxValue" : 7, "Increment" : 1 }, + "Legendary" : { "MinValue" : 8, "MaxValue" : 20, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addelementalresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addelementalresistancepercentage_suffix1" + ] + }, + { + "Type" : "AddBluntResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addbluntresistancepercentage_display", + "Description" : "$mod_epicloot_me_addbluntresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 10, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addbluntresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addbluntresistancepercentage_suffix1" + ] + }, + { + "Type" : "AddSlashingResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addslashingresistancepercentage_display", + "Description" : "$mod_epicloot_me_addslashingresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addslashingresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addslashingresistancepercentage_suffix1" + ] + }, + { + "Type" : "AddPiercingResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addpiercingresistancepercentage_display", + "Description" : "$mod_epicloot_me_addpiercingresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpiercingresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpiercingresistancepercentage_suffix1" + ] + }, + { + "Type" : "AddChoppingResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addchoppingresistancepercentage_display", + "Description" : "$mod_epicloot_me_addchoppingresistancepercentage_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addchoppingresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addchoppingresistancepercentage_suffix1" + ] + }, + { + "Type" : "AddPhysicalResistancePercentage", + "DisplayText" : "$mod_epicloot_me_addphysicalresistancepercentage_display", + "Description" : "$mod_epicloot_me_addphysicalresistancepercentage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shoulder", + "Utility", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 2, "Increment" : 1 }, + "Rare" : { "MinValue" : 2, "MaxValue" : 4, "Increment" : 1 }, + "Epic" : { "MinValue" : 4, "MaxValue" : 7, "Increment" : 1 }, + "Legendary" : { "MinValue" : 8, "MaxValue" : 20, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addphysicalresistancepercentage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addphysicalresistancepercentage_suffix1" + ] + }, + { + "Type" : "ModifyMovementSpeed", + "DisplayText" : "$mod_epicloot_me_modifymovementspeed_display", + "Description" : "$mod_epicloot_me_modifymovementspeed_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "RemoveSpeedPenalty" + ], + "AllowedItemTypes" : [ + "Legs", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 6, "MaxValue" : 11, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 12, "Increment" : 1 }, + "Legendary" : { "MinValue" : 8, "MaxValue" : 30, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifymovementspeed_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifymovementspeed_suffix1" + ] + }, + { + "Type" : "ModifySprintStaminaUse", + "DisplayText" : "$mod_epicloot_me_modifysprintstaminause_display", + "Description" : "$mod_epicloot_me_modifysprintstaminause_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Legs", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifysprintstaminause_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifysprintstaminause_suffix1" + ] + }, + { + "Type" : "ModifyJumpStaminaUse", + "DisplayText" : "$mod_epicloot_me_modifyjumpstaminause_display", + "Description" : "$mod_epicloot_me_modifyjumpstaminause_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Legs", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyjumpstaminause_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyjumpstaminause_suffix1" + ] + }, + { + "Type" : "ModifyAttackStaminaUse", + "DisplayText" : "$mod_epicloot_me_modifyattackstaminause_display", + "Description" : "$mod_epicloot_me_modifyattackstaminause_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Tool" + ], + "ItemUsesStaminaOnAttack" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyattackstaminause_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyattackstaminause_suffix1" + ] + }, + { + "Type" : "ModifyBlockStaminaUse", + "DisplayText" : "$mod_epicloot_me_modifyblockstaminause_display", + "Description" : "$mod_epicloot_me_modifyblockstaminause_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ], + "ItemHasBlockPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyblockstaminause_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyblockstaminause_suffix1" + ] + }, + { + "Type" : "Indestructible", + "DisplayText" : "$mod_epicloot_me_indestructible_display", + "Description" : "$mod_epicloot_me_indestructible_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "ModifyDurability" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Tool", + "Shield", + "Helmet", + "Chest", + "Legs", + "Shoulder" + ], + "AllowedRarities" : [ + "Epic", + "Legendary" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_indestructible_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_indestructible_suffix1" + ] + }, + { + "Type" : "Weightless", + "DisplayText" : "$mod_epicloot_me_weightless_display", + "Description" : "$mod_epicloot_me_weightless_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "ReduceWeight" + ], + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Torch", + "Tool", + "Shield", + "Helmet", + "Chest", + "Legs", + "Shoulder" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_weightless_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_weightless_suffix1" + ] + }, + { + "Type" : "AddCarryWeight", + "DisplayText" : "$mod_epicloot_me_addcarryweight_display", + "Description" : "$mod_epicloot_me_addcarryweight_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 5 }, + "Rare" : { "MinValue" : 10, "MaxValue" : 15, "Increment" : 5 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 5 }, + "Legendary" : { "MinValue" : 20, "MaxValue" : 500, "Increment" : 5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addcarryweight_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addcarryweight_suffix1" + ] + }, + { + "Type" : "LifeSteal", + "DisplayText" : "$mod_epicloot_me_lifesteal_display", + "Description" : "$mod_epicloot_me_lifesteal_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "AllowedRarities" : [ + "Rare", + "Epic", + "Legendary" + ], + "ItemUsesStaminaOnAttack" : true + }, + "ValuesPerRarity" : { + "Rare" : { "MinValue" : 0.8, "MaxValue" : 1.4, "Increment" : 0.1 }, + "Epic" : { "MinValue" : 1.5, "MaxValue" : 5, "Increment" : 0.1 }, + "Legendary" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 0.1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_lifesteal_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_lifesteal_suffix1" + ] + }, + { + "Type" : "ModifyAttackSpeed", + "DisplayText" : "$mod_epicloot_me_modifyattackspeed_display", + "Description" : "$mod_epicloot_me_modifyattackspeed_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Tool" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyattackspeed_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyattackspeed_suffix1" + ] + }, + { + "Type" : "Throwable", + "DisplayText" : "$mod_epicloot_me_throwable_display", + "Description" : "$mod_epicloot_me_throwable_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon" + ], + "ExcludedSkillTypes": [ + "Pickaxes", + "Spears" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_throwable_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_throwable_suffix1" + ] + }, + { + "Type" : "Waterproof", + "DisplayText" : "$mod_epicloot_me_waterproof_display", + "Description" : "$mod_epicloot_me_waterproof_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shoulder" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_waterproof_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_waterproof_suffix1" + ] + }, + { + "Type" : "Paralyze", + "DisplayText" : "$mod_epicloot_me_paralyze_display", + "Description" : "$mod_epicloot_me_paralyze_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 0.5, "MaxValue" : 2, "Increment" : 0.5 }, + "Rare" : { "MinValue" : 1, "MaxValue" : 2.5, "Increment" : 0.5 }, + "Epic" : { "MinValue" : 1.5, "MaxValue" : 3, "Increment" : 0.5 }, + "Legendary" : { "MinValue" : 2, "MaxValue" : 4, "Increment" : 0.5 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_paralyze_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_paralyze_suffix1" + ] + }, + { + "Type" : "DoubleJump", + "DisplayText" : "$mod_epicloot_me_doublejump_display", + "Description" : "$mod_epicloot_me_doublejump_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Legs" + ], + "AllowedRarities" : [ + "Epic", + "Legendary" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_doublejump_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_doublejump_suffix1" + ] + }, + { + "Type" : "WaterWalking", + "DisplayText" : "$mod_epicloot_me_waterwalk_display", + "Description" : "$mod_epicloot_me_waterwalk_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Legs" + ], + "AllowedRarities" : [ + "Rare", + "Epic", + "Legendary" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_waterwalk_prefix1", + "$mod_epicloot_me_waterwalk_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_waterwalk_suffix1", + "$mod_epicloot_me_waterwalk_suffix2" + ] + }, + { + "Type" : "ExplosiveArrows", + "DisplayText" : "$mod_epicloot_me_explosivearrows_display", + "Description" : "$mod_epicloot_me_explosivearrows_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 250, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_explosivearrows_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_explosivearrows_suffix1" + ] + }, + { + "Type" : "QuickDraw", + "DisplayText" : "$mod_epicloot_me_quickdraw_display", + "Description" : "$mod_epicloot_me_quickdraw_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 2, "MaxValue" : 8, "Increment" : 1 }, + "Rare" : { "MinValue" : 6, "MaxValue" : 16, "Increment" : 1 }, + "Epic" : { "MinValue" : 14, "MaxValue" : 30, "Increment" : 1 }, + "Legendary" : { "MinValue" : 30, "MaxValue" : 40, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_quickdraw_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_quickdraw_suffix1" + ] + }, + { + "Type" : "AddSwordsSkill", + "DisplayText" : "$mod_epicloot_me_addswordsskill_display", + "Description" : "$mod_epicloot_me_addswordsskill_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon" + ], + "AllowedSkillTypes" : [ + "Swords" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addswordsskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addswordsskill_suffix1" + ] + }, + { + "Type" : "AddKnivesSkill", + "DisplayText" : "$mod_epicloot_me_addknivesskill_display", + "Description" : "$mod_epicloot_me_addknivesskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Knives" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addknivesskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addknivesskill_suffix1" + ] + }, + { + "Type" : "AddClubsSkill", + "DisplayText" : "$mod_epicloot_me_addclubsskill_display", + "Description" : "$mod_epicloot_me_addclubsskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Clubs" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addclubsskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addclubsskill_suffix1" + ] + }, + { + "Type" : "AddPolearmsSkill", + "DisplayText" : "$mod_epicloot_me_addpolearmsskill_display", + "Description" : "$mod_epicloot_me_addpolearmsskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Polearms" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpolearmsskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpolearmsskill_suffix1" + ] + }, + { + "Type" : "AddSpearsSkill", + "DisplayText" : "$mod_epicloot_me_addspearsskill_display", + "Description" : "$mod_epicloot_me_addspearsskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Spears" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addspearsskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addspearsskill_suffix1" + ] + }, + { + "Type" : "AddBlockingSkill", + "DisplayText" : "$mod_epicloot_me_addblockingskill_display", + "Description" : "$mod_epicloot_me_addblockingskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Blocking" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addblockingskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addblockingskill_suffix1" + ] + }, + { + "Type" : "AddAxesSkill", + "DisplayText" : "$mod_epicloot_me_addaxesskill_display", + "Description" : "$mod_epicloot_me_addaxesskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Axes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addaxesskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addaxesskill_suffix1" + ] + }, + { + "Type" : "AddBowsSkill", + "DisplayText" : "$mod_epicloot_me_addbowsskill_display", + "Description" : "$mod_epicloot_me_addbowsskill_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Bows" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addbowsskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addbowsskill_suffix1" + ] + }, + { + "Type" : "AddUnarmedSkill", + "DisplayText" : "$mod_epicloot_me_addunarmedskill_display", + "Description" : "$mod_epicloot_me_addunarmedskill_desc", + "Requirements" : { + "NoRoll": true, + "AllowedItemTypes" : [ + "Chest" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 20, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addunarmedskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addunarmedskill_suffix1" + ] + }, + { + "Type" : "AddPickaxesSkill", + "DisplayText" : "$mod_epicloot_me_addpickaxesskill_display", + "Description" : "$mod_epicloot_me_addpickaxesskill_desc", + "Requirements": { + "AllowedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addpickaxesskill_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addpickaxesskill_suffix1" + ] + }, + { + "Type" : "AddMovementSkills", + "DisplayText" : "$mod_epicloot_me_addmovementskills_display", + "Description" : "$mod_epicloot_me_addmovementskills_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 4, "Increment" : 1 }, + "Rare" : { "MinValue" : 3, "MaxValue" : 8, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_addmovementskills_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_addmovementskills_suffix1" + ] + }, + { + "Type" : "ModifyStaggerDuration", + "DisplayText" : "$mod_epicloot_me_modifystaggerduration_display", + "Description" : "$mod_epicloot_me_modifystaggerduration_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Shield" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifystaggerduration_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifystaggerduration_suffix1" + ] + }, + { + "Type" : "QuickLearner", + "DisplayText" : "$mod_epicloot_me_quicklearner_display", + "Description" : "$mod_epicloot_me_quicklearner_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 19, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_quicklearner_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_quicklearner_suffix1" ] + }, + { + "Type" : "FreeBuild", + "DisplayText" : "$mod_epicloot_me_freebuild_display", + "Description" : "$mod_epicloot_me_freebuild_desc", + "Requirements" : { + "AllowedItemNames" : [ + "$item_hammer" + ], + "AllowedRarities" : [ + "Legendary" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_freebuild_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_freebuild_suffix1" ] + }, + { + "Type" : "RecallWeapon", + "DisplayText" : "$mod_epicloot_me_recallweapon_display", + "Description" : "$mod_epicloot_me_recallweapon_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_recallweapon_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_recallweapon_suffix1" ] + }, + { + "Type" : "ReflectDamage", + "DisplayText" : "$mod_epicloot_me_reflectdamage_display", + "Description" : "$mod_epicloot_me_reflectdamage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Chest", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_reflectdamage_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_reflectdamage_suffix1" ] + }, + { + "Type" : "AvoidDamageTaken", + "DisplayText" : "$mod_epicloot_me_avoiddamagetaken_display", + "Description" : "$mod_epicloot_me_avoiddamagetaken_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_avoiddamagetaken_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_avoiddamagetaken_suffix1" ] + }, + { + "Type" : "StaggerOnDamageTaken", + "DisplayText" : "$mod_epicloot_me_staggerondamagetaken_display", + "Description" : "$mod_epicloot_me_staggerondamagetaken_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Chest", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 19, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_staggerondamagetaken_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_staggerondamagetaken_suffix1" ] + }, + { + "Type" : "FeatherFall", + "DisplayText" : "$mod_epicloot_me_featherfall_display", + "Description" : "$mod_epicloot_me_featherfall_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Legs" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_featherfall_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_featherfall_suffix1" ] + }, + { + "Type" : "ModifyDiscoveryRadius", + "DisplayText" : "$mod_epicloot_me_modifydiscoveryradius_display", + "Description" : "$mod_epicloot_me_modifydiscoveryradius_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 16, "Increment" : 1 }, + "Legendary" : { "MinValue" : 14, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_modifydiscoveryradius_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_modifydiscoveryradius_suffix1" ] + }, + { + "Type" : "Comfortable", + "DisplayText" : "$mod_epicloot_me_comfortable_display", + "Description" : "$mod_epicloot_me_comfortable_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Chest", + "Legs", + "Shoulder", + "Helmet" + ], + "AllowedRarities" : [ + "Epic", + "Legendary" + ] + }, + "ValuesPerRarity" : { + "Epic" : { "MinValue" : 1, "MaxValue" : 1, "Increment" : 1 }, + "Legendary" : { "MinValue" : 2, "MaxValue" : 10, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_comfortable_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_comfortable_suffix1" ] + }, + { + "Type" : "ModifyMovementSpeedLowHealth", + "DisplayText" : "$mod_epicloot_me_modifymovementspeedlowhealth_display", + "Description" : "$mod_epicloot_me_modifymovementspeedlowhealth_desc", + "Requirements" : { + "ExclusiveEffectTypes" : [ + "RemoveSpeedPenalty" + ], + "AllowedItemTypes" : [ + "Legs", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 7, "MaxValue" : 12, "Increment" : 1 }, + "Rare" : { "MinValue" : 8, "MaxValue" : 13, "Increment" : 1 }, + "Epic" : { "MinValue" : 9, "MaxValue" : 14, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 15, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifymovementspeedlowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifymovementspeedlowhealth_suffix1" + ] + }, + { + "Type" : "ModifyHealthRegenLowHealth", + "DisplayText" : "$mod_epicloot_me_modifyhealthregenlowhealth_display", + "Description" : "$mod_epicloot_me_modifyhealthregenlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyhealthregenlowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyhealthregenlowhealth_suffix1" + ] + }, + { + "Type" : "ModifyStaminaRegenLowHealth", + "DisplayText" : "$mod_epicloot_me_modifystaminaregenlowhealth_display", + "Description" : "$mod_epicloot_me_modifystaminaregenlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility", + "Tool" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifystaminaregenlowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifystaminaregenlowhealth_suffix1" + ] + }, + { + "Type" : "ModifyArmorLowHealth", + "DisplayText" : "$mod_epicloot_me_modifyarmorlowhealth_display", + "Description" : "$mod_epicloot_me_modifyarmorlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ], + "ItemHasArmor" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyarmorlowhealth_prefix1", + "$mod_epicloot_me_modifyarmorlowhealth_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyarmorlowhealth_suffix1" + ] + }, + { + "Type" : "ModifyDamageLowHealth", + "DisplayText" : "$mod_epicloot_me_modifydamagelowhealth_display", + "Description" : "$mod_epicloot_me_modifydamagelowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 3, "MaxValue" : 6, "Increment" : 1 }, + "Rare" : { "MinValue" : 7, "MaxValue" : 10, "Increment" : 1 }, + "Epic" : { "MinValue" : 11, "MaxValue" : 14, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifydamagelowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifydamagelowhealth_suffix1" + ] + }, + { + "Type" : "ModifyBlockPowerLowHealth", + "DisplayText" : "$mod_epicloot_me_modifyblockpowerlowhealth_display", + "Description" : "$mod_epicloot_me_modifyblockpowerlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "ItemHasBlockPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyblockpowerlowhealth_prefix1", + "$mod_epicloot_me_modifyblockpowerlowhealth_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyblockpowerlowhealth_suffix1", + "$mod_epicloot_me_modifyblockpowerlowhealth_suffix2" + ] + }, + { + "Type" : "ModifyParryLowHealth", + "DisplayText" : "$mod_epicloot_me_modifyparrylowhealth_display", + "Description" : "$mod_epicloot_me_modifyparrylowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield", + "TwoHandedWeapon" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "ExcludedItemNames": [ + "$item_shield_serpentscale" + ], + "ItemHasParryPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Rare" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 25, "Increment" : 1 }, + "Legendary" : { "MinValue" : 25, "MaxValue" : 30, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyparrylowhealth_prefix1", + "$mod_epicloot_me_modifyparrylowhealth_prefix2" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyparrylowhealth_suffix1" + ] + }, + { + "Type" : "ModifyAttackSpeedLowHealth", + "DisplayText" : "$mod_epicloot_me_modifyattackspeedlowhealth_display", + "Description" : "$mod_epicloot_me_modifyattackspeedlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow", + "Tool" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Rare" : { "MinValue" : 16, "MaxValue" : 22, "Increment" : 1 }, + "Epic" : { "MinValue" : 23, "MaxValue" : 30, "Increment" : 1 }, + "Legendary" : { "MinValue" : 31, "MaxValue" : 40, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyattackspeedlowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyattackspeedlowhealth_suffix1" + ] + }, + { + "Type" : "AvoidDamageTakenLowHealth", + "DisplayText" : "$mod_epicloot_me_avoiddamagetakenlowhealth_display", + "Description" : "$mod_epicloot_me_avoiddamagetakenlowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Chest", + "Shield" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Rare" : { "MinValue" : 16, "MaxValue" : 22, "Increment" : 1 }, + "Epic" : { "MinValue" : 23, "MaxValue" : 30, "Increment" : 1 }, + "Legendary" : { "MinValue" : 31, "MaxValue" : 50, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ "$mod_epicloot_me_avoiddamagetakenlowhealth_prefix1" ], + "Suffixes": [ "$mod_epicloot_me_avoiddamagetakenlowhealth_suffix1" ] + }, + { + "Type" : "LifeStealLowHealth", + "DisplayText" : "$mod_epicloot_me_lifesteallowhealth_display", + "Description" : "$mod_epicloot_me_lifesteallowhealth_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "AllowedRarities" : [ + "Rare", + "Epic", + "Legendary" + ], + "ItemUsesStaminaOnAttack" : true + }, + "ValuesPerRarity" : { + "Rare" : { "MinValue" : 1, "MaxValue" : 2, "Increment" : 0.1 }, + "Epic" : { "MinValue" : 2, "MaxValue" : 3, "Increment" : 0.1 }, + "Legendary" : { "MinValue" : 3, "MaxValue" : 25, "Increment" : 0.1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_lifesteallowhealth_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_lifesteallowhealth_suffix1" + ] + }, + { + "Type" : "Glowing", + "DisplayText" : "$mod_epicloot_me_glowing_display", + "Description" : "$mod_epicloot_me_glowing_desc", + "EquipFx" : "GlowingAura", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_glowing_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_glowing_suffix1" + ] + }, + { + "Type" : "Executioner", + "DisplayText" : "$mod_epicloot_me_executioner_display", + "Description" : "$mod_epicloot_me_executioner_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ], + "AllowedRarities" : [ + "Epic", + "Legendary" + ], + "ItemUsesStaminaOnAttack" : true + }, + "ValuesPerRarity" : { + "Epic" : { "MinValue" : 50, "MaxValue" : 100, "Increment" : 1 }, + "Legendary" : { "MinValue" : 100, "MaxValue" : 400, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_executioner_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_executioner_suffix1" + ] + }, + { + "Type" : "Riches", + "DisplayText" : "$mod_epicloot_me_riches_display", + "Description" : "$mod_epicloot_me_riches_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 3, "Increment" : 1 }, + "Rare" : { "MinValue" : 4, "MaxValue" : 6, "Increment" : 1 }, + "Epic" : { "MinValue" : 7, "MaxValue" : 9, "Increment" : 1 }, + "Legendary" : { "MinValue" : 10, "MaxValue" : 15, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_riches_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_riches_suffix1" + ] + }, + { + "Type" : "Opportunist", + "DisplayText" : "$mod_epicloot_me_opportunist_display", + "Description" : "$mod_epicloot_me_opportunist_desc", + "Requirements" : { + "AllowedSkillTypes" : [ + "Knives" + ], + "AllowedRarities" : [ + "Epic", + "Legendary" + ] + }, + "ValuesPerRarity" : { + "Rare" : { "MinValue" : 10, "MaxValue" : 15, "Increment" : 1 }, + "Epic" : { "MinValue" : 15, "MaxValue" : 20, "Increment" : 1 }, + "Legendary" : { "MinValue" : 20, "MaxValue" : 25, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_opportunist_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_opportunist_suffix1" + ] + }, + { + "Type" : "Duelist", + "DisplayText" : "$mod_epicloot_me_duelist_display", + "Description" : "$mod_epicloot_me_duelist_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon" + ], + "AllowedSkillTypes" : [ + "Swords" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 20, "MaxValue" : 30, "Increment" : 1 }, + "Rare" : { "MinValue" : 31, "MaxValue" : 40, "Increment" : 1 }, + "Epic" : { "MinValue" : 41, "MaxValue" : 50, "Increment" : 1 }, + "Legendary" : { "MinValue" : 51, "MaxValue" : 60, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_duelist_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_duelist_suffix1" + ] + }, + { + "Type" : "Immovable", + "DisplayText" : "$mod_epicloot_me_immovable_display", + "Description" : "$mod_epicloot_me_immovable_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ], + "ItemHasNoParryPower" : true + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_immovable_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_immovable_suffix1" + ] + }, + { + "Type" : "ModifyStaggerDamage", + "DisplayText" : "$mod_epicloot_me_modifystaggerdamage_display", + "Description" : "$mod_epicloot_me_modifystaggerdamage_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 7, "MaxValue" : 15, "Increment" : 1 }, + "Rare" : { "MinValue" : 16, "MaxValue" : 22, "Increment" : 1 }, + "Epic" : { "MinValue" : 23, "MaxValue" : 30, "Increment" : 1 }, + "Legendary" : { "MinValue" : 31, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifystaggerdamage_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifystaggerdamage_suffix1" + ] + }, + { + "Type" : "Luck", + "DisplayText" : "$mod_epicloot_me_luck_display", + "Description" : "$mod_epicloot_me_luck_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Helmet", + "Chest", + "Legs", + "Shoulder", + "Utility" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 1, "MaxValue" : 5, "Increment" : 1 }, + "Rare" : { "MinValue" : 5, "MaxValue" : 10, "Increment" : 1 }, + "Epic" : { "MinValue" : 10, "MaxValue" : 15, "Increment" : 1 }, + "Legendary" : { "MinValue" : 15, "MaxValue" : 20, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_luck_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_luck_suffix1" + ] + }, + { + "Type" : "ModifyParryWindow", + "DisplayText" : "$mod_epicloot_me_modifyparrywindow_display", + "Description" : "$mod_epicloot_me_modifyparrywindow_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "Shield" + ], + "ExcludedItemNames": [ + "$item_shield_serpentscale" + ], + "ItemHasParryPower" : true + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 10, "MaxValue" : 40, "Increment" : 1 }, + "Rare" : { "MinValue" : 20, "MaxValue" : 60, "Increment" : 1 }, + "Epic" : { "MinValue" : 40, "MaxValue" : 80, "Increment" : 1 }, + "Legendary" : { "MinValue" : 50, "MaxValue" : 100, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_modifyparrywindow_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_modifyparrywindow_suffix1" + ] + }, + { + "Type" : "Slow", + "DisplayText" : "$mod_epicloot_me_slow_display", + "Description" : "$mod_epicloot_me_slow_desc", + "Requirements" : { + "AllowedItemTypes" : [ + "OneHandedWeapon", + "TwoHandedWeapon", + "Bow" + ], + "ExcludedSkillTypes": [ + "Pickaxes" + ] + }, + "ValuesPerRarity" : { + "Magic" : { "MinValue" : 30, "MaxValue" : 50, "Increment" : 1 }, + "Rare" : { "MinValue" : 40, "MaxValue" : 60, "Increment" : 1 }, + "Epic" : { "MinValue" : 50, "MaxValue" : 70, "Increment" : 1 }, + "Legendary" : { "MinValue" : 60, "MaxValue" : 90, "Increment" : 1 } + }, + "SelectionWeight" : 1, + "Prefixes": [ + "$mod_epicloot_me_slow_prefix1" + ], + "Suffixes": [ + "$mod_epicloot_me_slow_suffix1" + ] + }, + + // Set Effects + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "Type" : "Bulwark", + "DisplayText" : "$mod_epicloot_set_me_bulwark", + "Requirements" : { + "NoRoll" : true + }, + "ValuesPerRarity" : { + "Legendary" : { "MinValue" : 5, "MaxValue" : 5, "Increment" : 1 } + }, + "Ability" : "Bulwark" + }, + { + "Type" : "Undying", + "DisplayText" : "$mod_epicloot_set_me_undying", + "Requirements" : { + "NoRoll" : true + }, + "Ability" : "Undying" + }, + { + "Type" : "FrostDamageAOE", + "DisplayText" : "$mod_epicloot_set_me_frostdamageaoe_display", + "Requirements" : { + "NoRoll": true + }, + "ValuesPerRarity" : { + "Legendary" : { "MinValue" : 50, "MaxValue" : 50, "Increment" : 1 } + } + }, + { + "Type" : "Berserker", + "DisplayText" : "$mod_epicloot_set_me_berserker", + "Requirements" : { + "NoRoll" : true + }, + "Ability" : "Berserker" + } + ] +} diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/recipes.json b/ValheimClient/BepInEx/plugins/EpicLoot/recipes.json new file mode 100644 index 0000000..08b8628 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/recipes.json @@ -0,0 +1,376 @@ +{ + "recipes": [ + // Enchantable Items + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_LeatherBelt", + "item": "LeatherBelt", + "craftingStation": "forge", + "resources": [ + { "item": "TrollHide", "amount": 200 }, + { "item": "Coins", "amount": 5000 } + ] + }, + { + "name": "Recipe_SilverRing", + "item": "SilverRing", + "craftingStation": "forge", + "resources": [ + { "item": "AmberPearl", "amount": 100 }, + { "item": "Silver", "amount": 200 } + ] + }, + { + "name": "Recipe_GoldRubyRing", + "item": "GoldRubyRing", + "craftingStation": "forge", + "resources": [ + { "item": "Coins", "amount": 2500 }, + { "item": "Ruby", "amount": 100 } + ] + }, + + // Upgrade Recipes + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_ShardRareUpgrade", + "item": "ShardRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardMagic", "amount": 5 } + ] + }, + { + "name": "Recipe_ShardEpicUpgrade", + "item": "ShardEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardRare", "amount": 5 }, + { "item": "Coins", "amount": 5 } + ] + }, + { + "name": "Recipe_ShardLegendaryUpgrade", + "item": "ShardLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardEpic", "amount": 5 }, + { "item": "Coins", "amount": 100 } + ] + }, + + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_DustRareUpgrade", + "item": "DustRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "DustMagic", "amount": 5 } + ] + }, + { + "name": "Recipe_DustEpicUpgrade", + "item": "DustEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "DustRare", "amount": 5 }, + { "item": "Coins", "amount": 5 } + ] + }, + { + "name": "Recipe_DustLegendaryUpgrade", + "item": "DustLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "DustEpic", "amount": 5 }, + { "item": "Coins", "amount": 10 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_ReagentRareUpgrade", + "item": "ReagentRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ReagentMagic", "amount": 5 } + ] + }, + { + "name": "Recipe_ReagentEpicUpgrade", + "item": "ReagentEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ReagentRare", "amount": 5 }, + { "item": "Coins", "amount": 5 } + ] + }, + { + "name": "Recipe_ReagentLegendaryUpgrade", + "item": "ReagentLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ReagentEpic", "amount": 5 }, + { "item": "Coins", "amount": 10 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_EssenceRareUpgrade", + "item": "EssenceRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "EssenceMagic", "amount": 5 } + ] + }, + { + "name": "Recipe_EssenceEpicUpgrade", + "item": "EssenceEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "EssenceRare", "amount": 5 }, + { "item": "Coins", "amount": 5 } + ] + }, + { + "name": "Recipe_EssenceLegendaryUpgrade", + "item": "EssenceLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "EssenceEpic", "amount": 5 }, + { "item": "Coins", "amount": 10 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_RunestoneRareUpgrade", + "item": "RunestoneRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "RunestoneMagic", "amount": 5 } + ] + }, + { + "name": "Recipe_RunestoneEpicUpgrade", + "item": "RunestoneEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "RunestoneRare", "amount": 5 }, + { "item": "Coins", "amount": 5 } + ] + }, + { + "name": "Recipe_RunestoneLegendaryUpgrade", + "item": "RunestoneLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "RunestoneEpic", "amount": 5 }, + { "item": "Coins", "amount": 100 } + ] + }, + + // Conversion Recipes + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_MagicShardToDust_Conversion", + "item": "DustMagic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardMagic", "amount": 2 } + ] + }, + { + "name": "Recipe_MagicShardToEssence_Conversion", + "item": "EssenceMagic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardMagic", "amount": 2 } + ] + }, + { + "name": "Recipe_MagicShardToReagent_Conversion", + "item": "ReagentMagic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardMagic", "amount": 2 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_RareShardToDust_Conversion", + "item": "DustRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardRare", "amount": 2 }, + { "item": "Coins", "amount": 2 } + ] + }, + { + "name": "Recipe_RareShardToEssence_Conversion", + "item": "EssenceRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardRare", "amount": 2 }, + { "item": "Coins", "amount": 2 } + ] + }, + { + "name": "Recipe_RareShardToReagent_Conversion", + "item": "ReagentRare", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardRare", "amount": 2 }, + { "item": "Coins", "amount": 2 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_EpicShardToDust_Conversion", + "item": "DustEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardEpic", "amount": 2 }, + { "item": "Coins", "amount": 3 } + ] + }, + { + "name": "Recipe_EpicShardToEssence_Conversion", + "item": "EssenceEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardEpic", "amount": 2 }, + { "item": "Coins", "amount": 3 } + ] + }, + { + "name": "Recipe_EpicShardToReagent_Conversion", + "item": "ReagentEpic", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardEpic", "amount": 2 }, + { "item": "Coins", "amount": 3 } + ] + }, + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_LegendaryShardToDust_Conversion", + "item": "DustLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardLegendary", "amount": 2 }, + { "item": "Coins", "amount": 4 } + ] + }, + { + "name": "Recipe_LegendaryShardToEssence_Conversion", + "item": "EssenceLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardLegendary", "amount": 2 }, + { "item": "Coins", "amount": 4 } + ] + }, + { + "name": "Recipe_LegendaryShardToReagent_Conversion", + "item": "ReagentLegendary", + "amount": 1, + "craftingStation": "", + "resources": [ + { "item": "ShardLegendary", "amount": 2 }, + { "item": "Coins", "amount": 4 } + ] + }, + + // Junk Recipes + /////////////////////////////////////////////////////////////////////////////////////////////// + { + "name": "Recipe_BoneSkeletonTrophy", + "item": "TrophySkeleton", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "BoneFragments", "amount": 10 } + ] + }, + { + "name": "Recipe_EyeGreydwarfTrophy", + "item": "TrophyGreydwarf", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "GreydwarfEye", "amount": 10 } + ] + }, + { + "name": "Recipe_AntlerDeerTrophy", + "item": "TrophyDeer", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "HardAntler", "amount": 5 } + ] + }, + { + "name": "Recipe_HideTrollTrophy", + "item": "TrophyFrostTroll", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "TrollHide", "amount": 10 } + ] + }, + { + "name": "Recipe_CoreSurtlingTrophy", + "item": "TrophySurtling", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "SurtlingCore", "amount": 2 } + ] + }, + { + "name": "Recipe_FreezeGlandDrakeTrophy", + "item": "TrophyHatchling", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "FreezeGland", "amount": 3 } + ] + }, + { + "name": "Recipe_DragonTearRunestone", + "item": "RunestoneLegendary", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "DragonTear", "amount": 3 } + ] + }, + { + "name": "Recipe_YagluthThingRunestone", + "item": "RunestoneLegendary", + "craftingStation": "piece_workbench", + "resources": [ + { "item": "YagluthDrop", "amount": 1 } + ] + } + ] +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/EpicLoot/translations.json b/ValheimClient/BepInEx/plugins/EpicLoot/translations.json new file mode 100644 index 0000000..66fbdde --- /dev/null +++ b/ValheimClient/BepInEx/plugins/EpicLoot/translations.json @@ -0,0 +1,1152 @@ +{ + "mod_epicloot_craftingmaterial": "crafting material", + "mod_epicloot_set": "Set", + + "mod_epicloot_circlet": "circlet", + "mod_epicloot_belt": "belt", + "mod_epicloot_remains": "remains", + + "mod_epicloot_assets_dust": "Dust", + "mod_epicloot_assets_dust_introduce": "The remant upon the sacrificial altar. Used to enchant items. Obtained by sacrificing magic items.", + "mod_epicloot_assets_shard": "Shard", + "mod_epicloot_assets_shard_introduce": "A sliver of monstrous lifeforce. Used to augment magic items. Obtained by sacrificing animal and monster trophies.", + "mod_epicloot_assets_runestone": "Runestone", + "mod_epicloot_assets_runestone_introduce": "A catalyst of empyreal potential. Used to enchant or augment magic items.Obtained by sacrificing powerful trophies.", + "mod_epicloot_assets_reagent": "Reagent", + "mod_epicloot_assets_reagent_introduce": "A form representing pure synthesis. Used to enchant or augment armor and shields. Obtained by sacrificing magic armor or shields.", + "mod_epicloot_assets_essence": "Essence", + "mod_epicloot_assets_essence_introduce": "The distilled protean power to change one's environment. Used to enchant or augment weapons and tools. Obtained by sacrificing magic weapons or tools.", + "mod_epicloot_assets_silverring": "Silver Ring", + "mod_epicloot_assets_silverring_introduce": "An intricately wrought loop of fine silver.", + "mod_epicloot_assets_goldrubyring": "Gold Ruby Ring", + "mod_epicloot_assets_goldrubyring_introduce": "A beautiful ring of fine gold, set with a square-cut ruby.", + "mod_epicloot_assets_leatherbelt": "Leather Belt", + "mod_epicloot_assets_leatherbelt_introduce": "A common leather belt. Holds your pants up.", + "mod_epicloot_assets_andvaranaut": "Andvaranaut", + "mod_epicloot_assets_andvaranaut_introduce": "A dwarven-crafted ring in the shape of a dragon. Supposedly,it will guide any who wear it to sources of gold, but this one seems to be cursed to only find Haldor's treasure chests.", + "mod_epicloot_assets_enchanter": "Enchanter", + "mod_epicloot_assets_enchanter_introduce": "Allows Sacrificing and Enchanting magic items at a Forge. (Does not upgrade the forge's level)", + "mod_epicloot_assets_augmenter": "Augmenter", + "mod_epicloot_assets_augmenter_introduce": "Allows Augmenting magic items at a Forge. (Does not upgrade the forge's level)", + "mod_epicloot_assets_foresttoken": "Forest Token", + "mod_epicloot_assets_foresttoken_introduce": "A small metal token bearing a brilliant green leaf insignia.", + "mod_epicloot_assets_goldbountytoken": "Gold Bounty Token", + "mod_epicloot_assets_goldbountytoken_introduce": "Only the greatest monster-slayers of Valheim carry these heavy.", + "mod_epicloot_assets_ironbountytoken": "Iron Bounty Token", + "mod_epicloot_assets_ironbountytoken_introduce": "A toothy iron skull that commemorates your deeds.", + "mod_epicloot_assets_coins": "Coins", + + "mod_epicloot_sacrifice": "Sacrifice", + "mod_epicloot_sacrifice_warning": "This item will be DESTROYED as a SACRIFICE to the gods.", + "mod_epicloot_sacrifice_explanation": "Destroy this item and get:", + "mod_epicloot_sacrifice_equipped": "Item is currently equipped", + "mod_epicloot_sacrifice_inventoryfullexplanation": "(Inventory was full when crafting)", + "mod_epicloot_sacrificeall": "Sacrifice All", + + "mod_epicloot_augment": "Augment", + "mod_epicloot_augment_availableeffects": "Available Effects", + "mod_epicloot_augment_explain": "Replace one magical effect. Once an effect has been augmented, the others are locked.", + "mod_epicloot_augment_keep": "keep", + "mod_epicloot_augment_noeffects": "No available effects", + "mod_epicloot_augment_selecteffect": "Select an effect to augment", + + "mod_epicloot_enchant": "Enchant", + "mod_epicloot_enchant_effect": "effect", + "mod_epicloot_enchant_effects": "effects", + + "mod_epicloot_active_magic_effects": "Active Magic Effects", + "mod_epicloot_activebounties_classification": "Classification", + "mod_epicloot_activebounties_biome": "Biome", + "mod_epicloot_activebounties": "Active Bounties", + "mod_epicloot_adventure_title": "Treasure & Bounties", + "mod_epicloot_currentlyequipped": "Currently Equipped", + + "mod_epicloot_item_andvaranaut": "Andvaranaut", + "mod_epicloot_item_andvaranaut_tooltip": "Helps you find treasure chests from Haldor's maps. Move in the direction the pings get more intense.", + "mod_epicloot_item_andvaranaut_startmsg": "You can sense gold\n(No, wait, just Haldor's treasure chests. Dammit Loki!)", + "mod_epicloot_item_andvaranaut_type": "dwarven ring", + + "mod_epicloot_se_paralyze": "Paralyze", + "mod_epicloot_se_bulwark": "Bulwark", + "mod_epicloot_se_bulwark_tooltip": "Heimdall's Legacy protects you from all damage!", + "mod_epicloot_se_bulwark_startmessage": "Bulwark Activated", + "mod_epicloot_se_undying": "Undying", + "mod_epicloot_se_undying_tooltip": "Heimdall saves you from certain death! Gain immunity from damage for 3 seconds.", + "mod_epicloot_se_undying_startmessage": "Heimdall saves you from certain death!", + "mod_epicloot_se_berserker": "Berserker", + "mod_epicloot_se_berserker_tooltip": "You cannot regenerate health, but deal +50% to +200% damage based on health missing.", + "mod_epicloot_se_berserker_startmessage": "Raaaage!!", + + "mod_epicloot_bounties_claimedmsg": "Bounty Claimed!", + "mod_epicloot_bounties_completemsg": "Bounty Vanquished!", + "mod_epicloot_bounties_locatingmsg": "Locating Bounty Target...", + "mod_epicloot_bounties_minionname": "$1 Minion", + "mod_epicloot_bounties_noroomtooltip": "No room in inventory for reward", + "mod_epicloot_bounties_notcompletetooltip": "Not complete yet", + "mod_epicloot_bounties_prefix_acid": "Acid", + "mod_epicloot_bounties_prefix_aeztr": "Aeztr", + "mod_epicloot_bounties_prefix_agukir": "Agukir", + "mod_epicloot_bounties_prefix_ajath": "Ajath", + "mod_epicloot_bounties_prefix_akanoth": "Akanoth", + "mod_epicloot_bounties_prefix_almollak": "Almollak", + "mod_epicloot_bounties_prefix_anarchis": "Anarchis", + "mod_epicloot_bounties_prefix_anger": "Anger", + "mod_epicloot_bounties_prefix_anguish": "Anguish", + "mod_epicloot_bounties_prefix_asja": "Asja", + "mod_epicloot_bounties_prefix_aunuksih": "Aunuksih", + "mod_epicloot_bounties_prefix_awnd": "Awnd", + "mod_epicloot_bounties_prefix_azath": "Azath", + "mod_epicloot_bounties_prefix_azzamod": "Azzamod", + "mod_epicloot_bounties_prefix_bagthamuun": "Bagthamuun", + "mod_epicloot_bounties_prefix_barb": "Barb", + "mod_epicloot_bounties_prefix_bathtador": "Bathtador", + "mod_epicloot_bounties_prefix_bein": "Bein", + "mod_epicloot_bounties_prefix_bepshish": "Bepshish", + "mod_epicloot_bounties_prefix_blemish": "Blemish", + "mod_epicloot_bounties_prefix_blent": "Blent", + "mod_epicloot_bounties_prefix_bone": "Bone", + "mod_epicloot_bounties_prefix_boninned": "Boninned", + "mod_epicloot_bounties_prefix_borth": "Borth", + "mod_epicloot_bounties_prefix_bracknik": "Bracknik", + "mod_epicloot_bounties_prefix_brazrannug": "Brazrannug", + "mod_epicloot_bounties_prefix_caella": "Caella", + "mod_epicloot_bounties_prefix_danger": "Danger", + "mod_epicloot_bounties_prefix_deakgu": "Deakgu", + "mod_epicloot_bounties_prefix_deceit": "Deceit", + "mod_epicloot_bounties_prefix_deraria": "Deraria", + "mod_epicloot_bounties_prefix_desonia": "Desonia", + "mod_epicloot_bounties_prefix_dogmozun": "Dogmozun", + "mod_epicloot_bounties_prefix_domr": "Domr", + "mod_epicloot_bounties_prefix_dread": "Dread", + "mod_epicloot_bounties_prefix_drogtherun": "Drogtherun", + "mod_epicloot_bounties_prefix_drorothiuk": "Drorothiuk", + "mod_epicloot_bounties_prefix_dugi": "Dugi", + "mod_epicloot_bounties_prefix_dulphumph": "Dulphumph", + "mod_epicloot_bounties_prefix_dwent": "Dwent", + "mod_epicloot_bounties_prefix_envy": "Envy", + "mod_epicloot_bounties_prefix_etherezi": "Etherezi", + "mod_epicloot_bounties_prefix_ezeret": "Ezeret", + "mod_epicloot_bounties_prefix_fafseal": "Fafseal", + "mod_epicloot_bounties_prefix_fame": "Fame", + "mod_epicloot_bounties_prefix_fate": "Fate", + "mod_epicloot_bounties_prefix_feairi": "Feairi", + "mod_epicloot_bounties_prefix_fear": "Fear", + "mod_epicloot_bounties_prefix_felagi": "Felagi", + "mod_epicloot_bounties_prefix_feldgulg": "Feldgulg", + "mod_epicloot_bounties_prefix_feral": "Feral", + "mod_epicloot_bounties_prefix_floerd": "Floerd", + "mod_epicloot_bounties_prefix_florialle": "Florialle", + "mod_epicloot_bounties_prefix_florola": "Florola", + "mod_epicloot_bounties_prefix_frodi": "Frodi", + "mod_epicloot_bounties_prefix_frosti": "Frosti", + "mod_epicloot_bounties_prefix_funa": "Funa", + "mod_epicloot_bounties_prefix_fwent": "Fwent", + "mod_epicloot_bounties_prefix_gagrellan": "Gagrellan", + "mod_epicloot_bounties_prefix_gallhag": "Gallhag", + "mod_epicloot_bounties_prefix_garunoth": "Garunoth", + "mod_epicloot_bounties_prefix_griever": "Griever", + "mod_epicloot_bounties_prefix_grima": "Grima", + "mod_epicloot_bounties_prefix_hagr": "Hagr", + "mod_epicloot_bounties_prefix_hath": "Hath", + "mod_epicloot_bounties_prefix_hatred": "Hatred", + "mod_epicloot_bounties_prefix_helleanor": "Helleanor", + "mod_epicloot_bounties_prefix_hephinore": "Hephinore", + "mod_epicloot_bounties_prefix_hermadi": "Hermadi", + "mod_epicloot_bounties_prefix_hildr": "Hildr", + "mod_epicloot_bounties_prefix_hjala": "Hjala", + "mod_epicloot_bounties_prefix_hluti": "Hluti", + "mod_epicloot_bounties_prefix_horron": "Horron", + "mod_epicloot_bounties_prefix_horror": "Horror", + "mod_epicloot_bounties_prefix_igurg": "Igurg", + "mod_epicloot_bounties_prefix_irrad": "Irrad", + "mod_epicloot_bounties_prefix_ithturus": "Ithturus", + "mod_epicloot_bounties_prefix_jaugruje": "Jaugruje", + "mod_epicloot_bounties_prefix_jecsuqut": "Jecsuqut", + "mod_epicloot_bounties_prefix_jekegshout": "Jekegshout", + "mod_epicloot_bounties_prefix_jougyeq": "Jougyeq", + "mod_epicloot_bounties_prefix_kolruzok": "Kolruzok", + "mod_epicloot_bounties_prefix_kula": "Kula", + "mod_epicloot_bounties_prefix_litlaus": "Litlaus", + "mod_epicloot_bounties_prefix_lorethe": "Lorethe", + "mod_epicloot_bounties_prefix_lugdum": "Lugdum", + "mod_epicloot_bounties_prefix_lyvise": "Lyvise", + "mod_epicloot_bounties_prefix_malice": "Malice", + "mod_epicloot_bounties_prefix_malmr": "Malmr", + "mod_epicloot_bounties_prefix_margath": "Margath", + "mod_epicloot_bounties_prefix_mask": "Mask", + "mod_epicloot_bounties_prefix_mattr": "Mattr", + "mod_epicloot_bounties_prefix_mighty": "Mighty", + "mod_epicloot_bounties_prefix_mimir": "Mimir", + "mod_epicloot_bounties_prefix_mol": "Mol", + "mod_epicloot_bounties_prefix_moleck": "Moleck", + "mod_epicloot_bounties_prefix_moloth": "Moloth", + "mod_epicloot_bounties_prefix_morbius": "Morbius", + "mod_epicloot_bounties_prefix_mordvig": "Mordvig", + "mod_epicloot_bounties_prefix_natt": "Natt", + "mod_epicloot_bounties_prefix_nehgac": "Nehgac", + "mod_epicloot_bounties_prefix_nelleanor": "Nelleanor", + "mod_epicloot_bounties_prefix_nephyana": "Nephyana", + "mod_epicloot_bounties_prefix_night": "Night", + "mod_epicloot_bounties_prefix_noxuc": "Noxuc", + "mod_epicloot_bounties_prefix_nucsus": "Nucsus", + "mod_epicloot_bounties_prefix_nysalin": "Nysalin", + "mod_epicloot_bounties_prefix_olganeth": "Olganeth", + "mod_epicloot_bounties_prefix_opathu": "Opathu", + "mod_epicloot_bounties_prefix_orinys": "Orinys", + "mod_epicloot_bounties_prefix_orrakith": "Orrakith", + "mod_epicloot_bounties_prefix_ostronag": "Ostronag", + "mod_epicloot_bounties_prefix_osuxah": "Osuxah", + "mod_epicloot_bounties_prefix_ovaettr": "Ovaettr", + "mod_epicloot_bounties_prefix_pnaby": "Pnaby", + "mod_epicloot_bounties_prefix_pra": "Pra", + "mod_epicloot_bounties_prefix_qflugi": "Qflugi", + "mod_epicloot_bounties_prefix_rage": "Rage", + "mod_epicloot_bounties_prefix_recseh": "Recseh", + "mod_epicloot_bounties_prefix_rezuaq": "Rezuaq", + "mod_epicloot_bounties_prefix_rok": "Rok", + "mod_epicloot_bounties_prefix_rot": "Rot", + "mod_epicloot_bounties_prefix_ruqujua": "Ruqujua", + "mod_epicloot_bounties_prefix_sal": "Sal", + "mod_epicloot_bounties_prefix_scabthatch": "Scabthatch", + "mod_epicloot_bounties_prefix_scare": "Scare", + "mod_epicloot_bounties_prefix_scaron": "Scaron", + "mod_epicloot_bounties_prefix_sezzonas": "Sezzonas", + "mod_epicloot_bounties_prefix_shadeling": "Shadeling", + "mod_epicloot_bounties_prefix_shahxuja": "Shahxuja", + "mod_epicloot_bounties_prefix_skeltal": "Skeltal", + "mod_epicloot_bounties_prefix_skjar": "Skjar", + "mod_epicloot_bounties_prefix_skod": "Skod", + "mod_epicloot_bounties_prefix_skoth": "Skoth", + "mod_epicloot_bounties_prefix_sloth": "Sloth", + "mod_epicloot_bounties_prefix_smog": "Smog", + "mod_epicloot_bounties_prefix_sorguleth": "Sorguleth", + "mod_epicloot_bounties_prefix_sorrow": "Sorrow", + "mod_epicloot_bounties_prefix_soul": "Soul", + "mod_epicloot_bounties_prefix_spirit": "Spirit", + "mod_epicloot_bounties_prefix_spite": "Spite", + "mod_epicloot_bounties_prefix_stormerki": "Stormerki", + "mod_epicloot_bounties_prefix_taustpion": "Taustpion", + "mod_epicloot_bounties_prefix_terron": "Terron", + "mod_epicloot_bounties_prefix_terror": "Terror", + "mod_epicloot_bounties_prefix_theloya": "Theloya", + "mod_epicloot_bounties_prefix_tiglemun": "Tiglemun", + "mod_epicloot_bounties_prefix_torment": "Torment", + "mod_epicloot_bounties_prefix_trostraus": "Trostraus", + "mod_epicloot_bounties_prefix_twilight": "Twilight", + "mod_epicloot_bounties_prefix_tyrant": "Tyrant", + "mod_epicloot_bounties_prefix_tyvase": "Tyvase", + "mod_epicloot_bounties_prefix_uemiara": "Uemiara", + "mod_epicloot_bounties_prefix_ugaq": "Ugaq", + "mod_epicloot_bounties_prefix_und": "Und", + "mod_epicloot_bounties_prefix_uquxa": "Uquxa", + "mod_epicloot_bounties_prefix_urnollaar": "Urnollaar", + "mod_epicloot_bounties_prefix_ushuq": "Ushuq", + "mod_epicloot_bounties_prefix_vaett": "Vaett", + "mod_epicloot_bounties_prefix_vam": "Vam", + "mod_epicloot_bounties_prefix_vind": "Vind", + "mod_epicloot_bounties_prefix_vit": "Vit", + "mod_epicloot_bounties_prefix_vozgonoth": "Vozgonoth", + "mod_epicloot_bounties_prefix_vyneano": "Vyneano", + "mod_epicloot_bounties_prefix_vynynore": "Vynynore", + "mod_epicloot_bounties_prefix_waringo": "Waringo", + "mod_epicloot_bounties_prefix_warrior": "Warrior", + "mod_epicloot_bounties_prefix_wind": "Wind", + "mod_epicloot_bounties_prefix_witseab": "Witseab", + "mod_epicloot_bounties_prefix_wrath": "Wrath", + "mod_epicloot_bounties_prefix_wurtguth": "Wurtguth", + "mod_epicloot_bounties_prefix_xaanuzhe": "Xaanuzhe", + "mod_epicloot_bounties_prefix_xagdrik": "Xagdrik", + "mod_epicloot_bounties_prefix_xarpug": "Xarpug", + "mod_epicloot_bounties_prefix_xogdrath": "Xogdrath", + "mod_epicloot_bounties_prefix_xolgog": "Xolgog", + "mod_epicloot_bounties_prefix_yegoth": "Yegoth", + "mod_epicloot_bounties_prefix_yerghug": "Yerghug", + "mod_epicloot_bounties_prefix_yoryne": "Yoryne", + "mod_epicloot_bounties_prefix_zephinore": "Zephinore", + "mod_epicloot_bounties_prefix_zetheret": "Zetheret", + "mod_epicloot_bounties_prefix_zmak": "Zmak", + "mod_epicloot_bounties_prefix_zollmallan": "Zollmallan", + "mod_epicloot_bounties_prefix_zorinak": "Zorinak", + "mod_epicloot_bounties_suffix_bannerlord": "Bannerlord", + "mod_epicloot_bounties_suffix_battleborn": "Battleborn", + "mod_epicloot_bounties_suffix_battlefury": "Battlefury", + "mod_epicloot_bounties_suffix_bloodspilt": "Bloodspilt", + "mod_epicloot_bounties_suffix_carrionfeast": "Carrionfeast", + "mod_epicloot_bounties_suffix_clevermind": "Clevermind", + "mod_epicloot_bounties_suffix_cursebreaker": "Cursebreaker", + "mod_epicloot_bounties_suffix_darkcloak": "Darkcloak", + "mod_epicloot_bounties_suffix_darkshade": "Darkshade", + "mod_epicloot_bounties_suffix_darkstone": "Darkstone", + "mod_epicloot_bounties_suffix_dawnbreaker": "Dawnbreaker", + "mod_epicloot_bounties_suffix_dawnfire": "Dawnfire", + "mod_epicloot_bounties_suffix_deathgreeting": "Deathgreeting", + "mod_epicloot_bounties_suffix_deathgrin": "Deathgrin", + "mod_epicloot_bounties_suffix_dirt_eater": ", Dirt Eater", + "mod_epicloot_bounties_suffix_doomsphere": "Doomsphere", + "mod_epicloot_bounties_suffix_dreadfang": "Dreadfang", + "mod_epicloot_bounties_suffix_frenzied_raider": ", Frenzied Raider", + "mod_epicloot_bounties_suffix_glittermist": "Glittermist", + "mod_epicloot_bounties_suffix_gloryseeker": "Gloryseeker", + "mod_epicloot_bounties_suffix_greedgallow": "Greedgallow", + "mod_epicloot_bounties_suffix_griefstrike": "Griefstrike", + "mod_epicloot_bounties_suffix_hailfall": "Hailfall", + "mod_epicloot_bounties_suffix_hero_slayer": ", Hero Slayer", + "mod_epicloot_bounties_suffix_jotunkin": "Jotunkin", + "mod_epicloot_bounties_suffix_keeper_of_nightmares": ", Keeper of Nightmares", + "mod_epicloot_bounties_suffix_king_of_the_wicked": ", King of the Wicked", + "mod_epicloot_bounties_suffix_lamplight": "Lamplight", + "mod_epicloot_bounties_suffix_lord_of_helheim": ", Lord of Helheim", + "mod_epicloot_bounties_suffix_marrow_eater": ", Marrow Eater", + "mod_epicloot_bounties_suffix_mysterious_one": ", Mysterious One", + "mod_epicloot_bounties_suffix_nightfall": "Nightfall", + "mod_epicloot_bounties_suffix_nomad_of_the_wastelands": ", Nomad of the Wastelands", + "mod_epicloot_bounties_suffix_oathbreaker": "Oathbreaker", + "mod_epicloot_bounties_suffix_of_courage": "of Courage", + "mod_epicloot_bounties_suffix_of_hostility": "of Hostility", + "mod_epicloot_bounties_suffix_of_might": "of Might", + "mod_epicloot_bounties_suffix_of_radiance": "of Radiance", + "mod_epicloot_bounties_suffix_of_silence": "of Silence", + "mod_epicloot_bounties_suffix_of_spite": "of Spite", + "mod_epicloot_bounties_suffix_of_the_banner": "of the Banner", + "mod_epicloot_bounties_suffix_of_the_darkness": "of the Darkness", + "mod_epicloot_bounties_suffix_of_tolling_bells": "of Tolling Bells", + "mod_epicloot_bounties_suffix_of_vengeance": "of Vengeance", + "mod_epicloot_bounties_suffix_omenbleed": "Omenbleed", + "mod_epicloot_bounties_suffix_patron_of_the_mad": ", Patron of the Mad", + "mod_epicloot_bounties_suffix_pestilence": "Pestilence", + "mod_epicloot_bounties_suffix_pridefall": "Pridefall", + "mod_epicloot_bounties_suffix_quake": "Quake", + "mod_epicloot_bounties_suffix_runekennen": "Runekennen", + "mod_epicloot_bounties_suffix_scythe": "Scythe", + "mod_epicloot_bounties_suffix_siezefrenzy": "Siezefrenzy", + "mod_epicloot_bounties_suffix_skullcrusher": "Skullcrusher", + "mod_epicloot_bounties_suffix_spearpoint": "Spearpoint", + "mod_epicloot_bounties_suffix_spitemonger": "Spitemonger", + "mod_epicloot_bounties_suffix_spoiled_one": ", Spoiled One", + "mod_epicloot_bounties_suffix_starfall": "Starfall", + "mod_epicloot_bounties_suffix_starlight": "Starlight", + "mod_epicloot_bounties_suffix_steward_of_the_eclipse": ", Steward of the Eclipse", + "mod_epicloot_bounties_suffix_svalroot": "Svalroot", + "mod_epicloot_bounties_suffix_swiftspite": "Swiftspite", + "mod_epicloot_bounties_suffix_the_abandoned": "the Abandoned", + "mod_epicloot_bounties_suffix_the_ancient": "the Ancient", + "mod_epicloot_bounties_suffix_the_betrayer": "the Betrayer", + "mod_epicloot_bounties_suffix_the_brutal": "the Brutal", + "mod_epicloot_bounties_suffix_the_brute": "the Brute", + "mod_epicloot_bounties_suffix_the_butcher": "the Butcher", + "mod_epicloot_bounties_suffix_the_chatterer": "the Chatterer", + "mod_epicloot_bounties_suffix_the_cleaver": "the Cleaver", + "mod_epicloot_bounties_suffix_the_contemptible": "the Contemptible", + "mod_epicloot_bounties_suffix_the_corpse": "the Corpse", + "mod_epicloot_bounties_suffix_the_cursed": "the Cursed", + "mod_epicloot_bounties_suffix_the_damned": "the Damned", + "mod_epicloot_bounties_suffix_the_depraved": "the Depraved", + "mod_epicloot_bounties_suffix_the_destroyer": "the Destroyer", + "mod_epicloot_bounties_suffix_the_doomed": "the Doomed", + "mod_epicloot_bounties_suffix_the_empty": "the Empty", + "mod_epicloot_bounties_suffix_the_evil": "the Evil", + "mod_epicloot_bounties_suffix_the_executioner": "the Executioner", + "mod_epicloot_bounties_suffix_the_fiend": "the Fiend", + "mod_epicloot_bounties_suffix_the_fierce": "the Fierce", + "mod_epicloot_bounties_suffix_the_foul": "the Foul", + "mod_epicloot_bounties_suffix_the_ghastly": "the Ghastly", + "mod_epicloot_bounties_suffix_the_gilt": "the Gilt", + "mod_epicloot_bounties_suffix_the_greedy": "the Greedy", + "mod_epicloot_bounties_suffix_the_guilty": "the Guilty", + "mod_epicloot_bounties_suffix_the_handsome": "the Handsome", + "mod_epicloot_bounties_suffix_the_hellion": "the Hellion", + "mod_epicloot_bounties_suffix_the_horror": "the Horror", + "mod_epicloot_bounties_suffix_the_humiliated": "the Humiliated", + "mod_epicloot_bounties_suffix_the_immortal": "the Immortal", + "mod_epicloot_bounties_suffix_the_insulted": "the Insulted", + "mod_epicloot_bounties_suffix_the_knife": "the Knife", + "mod_epicloot_bounties_suffix_the_maligned": "the Maligned", + "mod_epicloot_bounties_suffix_the_mangler": "the Mangler", + "mod_epicloot_bounties_suffix_the_miser": "the Miser", + "mod_epicloot_bounties_suffix_the_monster": "the Monster", + "mod_epicloot_bounties_suffix_the_murderer": "the Murderer", + "mod_epicloot_bounties_suffix_the_needle": "the Needle", + "mod_epicloot_bounties_suffix_the_noxious": "the Noxious", + "mod_epicloot_bounties_suffix_the_omen": "the Omen", + "mod_epicloot_bounties_suffix_the_pierced": "the Pierced", + "mod_epicloot_bounties_suffix_the_prickly": "the Prickly", + "mod_epicloot_bounties_suffix_the_quickened": "the Quickened", + "mod_epicloot_bounties_suffix_the_raider": "the Raider", + "mod_epicloot_bounties_suffix_the_reckoner": "the Reckoner", + "mod_epicloot_bounties_suffix_the_revenant": "the Revenant", + "mod_epicloot_bounties_suffix_the_rude": "the Rude", + "mod_epicloot_bounties_suffix_the_savage": "the Savage", + "mod_epicloot_bounties_suffix_the_seer": "the Seer", + "mod_epicloot_bounties_suffix_the_shield": "the Shield", + "mod_epicloot_bounties_suffix_the_slaughtered": "the Slaughtered", + "mod_epicloot_bounties_suffix_the_slayer": "the Slayer", + "mod_epicloot_bounties_suffix_the_sleeper": "the Sleeper", + "mod_epicloot_bounties_suffix_the_soldier": "the Soldier", + "mod_epicloot_bounties_suffix_the_spiteful": "the Spiteful", + "mod_epicloot_bounties_suffix_the_talisman": "the Talisman", + "mod_epicloot_bounties_suffix_the_terrible": "the Terrible", + "mod_epicloot_bounties_suffix_the_vicious": "the Vicious", + "mod_epicloot_bounties_suffix_the_vile": "the Vile", + "mod_epicloot_bounties_suffix_the_weapon": "the Weapon", + "mod_epicloot_bounties_suffix_the_wicked": "the Wicked", + "mod_epicloot_bounties_suffix_thief_of_ignorance": ", Thief of Ignorance", + "mod_epicloot_bounties_suffix_thrall": "Thrall", + "mod_epicloot_bounties_suffix_thunderous_one": ", Thunderous One", + "mod_epicloot_bounties_suffix_toothgrind": "Toothgrind", + "mod_epicloot_bounties_suffix_torment": "Torment", + "mod_epicloot_bounties_suffix_tortured_soul": ", Tortured Soul", + "mod_epicloot_bounties_suffix_treasure_hunter": ", Treasure Hunter", + "mod_epicloot_bounties_suffix_twigsnapper": "Twigsnapper", + "mod_epicloot_bounties_suffix_umbral_stalker": ", Umbral Stalker", + "mod_epicloot_bounties_suffix_unspeakable_horror": ", Unspeakable Horror", + "mod_epicloot_bounties_suffix_viletongue": "Viletongue", + "mod_epicloot_bounties_suffix_warbane": "Warbane", + "mod_epicloot_bounties_suffix_warfall": "Warfall", + "mod_epicloot_bounties_suffix_warfighter": "Warfighter", + "mod_epicloot_bounties_suffix_whispersmith": "Whispersmith", + + "mod_epicloot_bounties_targetnameformat": "$1 $2", + "mod_epicloot_bounties_targetnameformat_nospace": "$1$2", + + "mod_epicloot_bounties_tooltip": "Travel to the $1 and locate $2 the $3. $4. Return to me when it is done.", + "mod_epicloot_bounties_tooltip_available": "Available", + "mod_epicloot_bounties_tooltip_claimed": "Claimed", + "mod_epicloot_bounties_tooltip_inprogress": "In Progress", + "mod_epicloot_bounties_tooltip_rewards": "Rewards:", + "mod_epicloot_bounties_tooltip_slay": "Slay it", + "mod_epicloot_bounties_tooltip_slaymultiple": "Slay it and its minions", + "mod_epicloot_bounties_tooltip_status": "Status:", + "mod_epicloot_bounties_tooltip_vanquished": "Vanquished!", + "mod_epicloot_bounties_minimappin": "Bounty: $1", + "mod_epicloot_gamble_tooltip": "Pay a premium for a chance at a magic item!", + "mod_epicloot_gamble_tooltip_chance": "Chance for:", + "mod_epicloot_gamble_tooltip_nonmagic": "Non-magic", + "mod_epicloot_merchant_abandonbounty": "Abandon Bounty", + "mod_epicloot_merchant_abandonbountyconfirm": "Abandon Bounty?", + "mod_epicloot_merchant_abandonbountydesc": "It may not be accepted again", + "mod_epicloot_merchant_acceptbounty": "Accept Bounty", + "mod_epicloot_merchant_bounties": "Bounties", + "mod_epicloot_merchant_bountiesactive": "Active", + "mod_epicloot_merchant_bountiesavailable": "Available", + "mod_epicloot_merchant_buy": "Abandon Bounty", + "mod_epicloot_merchant_cannotafford": "Cannot afford", + "mod_epicloot_merchant_claimreward": "Claim Reward", + "mod_epicloot_merchant_days": "d", + "mod_epicloot_merchant_gamble": "Gamble", + "mod_epicloot_merchant_hours": "h", + "mod_epicloot_merchant_minutes": "m", + "mod_epicloot_merchant_noroomtooltip": "No room in inventory", + "mod_epicloot_merchant_purchasedtooltip": "Already purchased", + "mod_epicloot_merchant_purchased": "purchased", + "mod_epicloot_merchant_refreshintervals": "Refresh Intervals", + "mod_epicloot_merchant_refreshday": "Every in-game day", + "mod_epicloot_merchant_refreshdays": "Every $1 in-game days", + "mod_epicloot_merchant_rollovertime": "Rollover Time: Midnight", + "mod_epicloot_merchant_seconds": "s", + "mod_epicloot_merchant_secretstash": "Secret Stash", + "mod_epicloot_merchant_treasuremaps": "Treasure Maps", + "mod_epicloot_merchant_unknown": "???", + "mod_epicloot_treasurechest_minimappin": "Treasure Chest: $1 #$2", + "mod_epicloot_treasurechest_name": "Treasure Chest: $1 #$2", + "mod_epicloot_treasuremap_locatingmsg": "Preparing Treasure Map...", + "mod_epicloot_treasuremap_name": "Treasure Map: $1 #$2", + "mod_epicloot_treasuremap_tooltip": "This folded piece of ragged parchment has a big red X marked on it, somewhere in the $1...", + + "mod_epicloot_me_explaintitle": "Magic Effect Descriptions", + "mod_epicloot_me_dvergercirclet_display": "Perpetual Lightsource", + "mod_epicloot_me_megingjord_display": "Carry Weight +150", + "mod_epicloot_me_wishbone_display": "Secret Finding", + "mod_epicloot_me_andvaranaut_display": "Haldor's Treasure Finder", + "mod_epicloot_me_modifydamage_display": "All Damage +{0:0.#}%", + "mod_epicloot_me_modifyphysicaldamage_display": "Physical Damage +{0:0.#}%", + "mod_epicloot_me_modifyphysicaldamage_desc": "Increase the physical damage (blunt, slash, pierce, chop, pickaxe) done by the magic weapon by +X%.", + "mod_epicloot_me_modifyphysicaldamage_prefix1": "Strong", + "mod_epicloot_me_modifyphysicaldamage_prefix2": "Powerful", + "mod_epicloot_me_modifyphysicaldamage_prefix3": "Mighty", + "mod_epicloot_me_modifyphysicaldamage_prefix4": "Heavy", + "mod_epicloot_me_modifyphysicaldamage_prefix5": "Forceful", + "mod_epicloot_me_modifyphysicaldamage_prefix6": "Wicked", + "mod_epicloot_me_modifyphysicaldamage_prefix7": "Fighter's", + "mod_epicloot_me_modifyphysicaldamage_prefix8": "Warrior", + "mod_epicloot_me_modifyphysicaldamage_suffix1": "Strength", + "mod_epicloot_me_modifyphysicaldamage_suffix2": "Power", + "mod_epicloot_me_modifyphysicaldamage_suffix3": "Might", + "mod_epicloot_me_modifyphysicaldamage_suffix4": "Force", + "mod_epicloot_me_modifyphysicaldamage_suffix5": "the Warrior", + "mod_epicloot_me_modifyelementaldamage_display": "Elemental Damage +{0:0.#}%", + "mod_epicloot_me_modifyelementaldamage_desc": "Increase the elemental damage (fire, frost, lightning, poison, spirit) done by the magic weapon by +X%.", + "mod_epicloot_me_modifyelementaldamage_prefix1": "Energized", + "mod_epicloot_me_modifyelementaldamage_prefix2": "Empowered", + "mod_epicloot_me_modifyelementaldamage_prefix3": "Charged", + "mod_epicloot_me_modifyelementaldamage_prefix4": "Intensified", + "mod_epicloot_me_modifyelementaldamage_suffix1": "Energy", + "mod_epicloot_me_modifyelementaldamage_suffix2": "Intensity", + "mod_epicloot_me_modifyelementaldamage_suffix3": "Brilliance", + "mod_epicloot_me_modifydurability_display": "Durability +{0:0.#}%", + "mod_epicloot_me_modifydurability_desc": "Increase the maximum durability of the magic item by +X%.", + "mod_epicloot_me_modifydurability_prefix1": "Sturdy", + "mod_epicloot_me_modifydurability_prefix2": "Stout", + "mod_epicloot_me_modifydurability_prefix3": "Robust", + "mod_epicloot_me_modifydurability_suffix1": "Sturdiness", + "mod_epicloot_me_modifydurability_suffix2": "Robustness", + "mod_epicloot_me_modifydurability_suffix3": "Stability", + "mod_epicloot_me_modifydurability_suffix4": "the Ox", + "mod_epicloot_me_reduceweight_display": "Weight -{0:0.#}% ", + "mod_epicloot_me_reduceweight_desc": "Reduce the weight of the magic item by -X%.", + "mod_epicloot_me_reduceweight_prefix1": "Light", + "mod_epicloot_me_reduceweight_prefix2": "Slender", + "mod_epicloot_me_reduceweight_suffix1": "the Feather", + "mod_epicloot_me_removespeedpenalty_display": "No Movement Speed Penalty", + "mod_epicloot_me_removespeedpenalty_desc": "Wearing or wielding this magic item does not penalize the player's movement speed.", + "mod_epicloot_me_removespeedpenalty_prefix1": "Agile", + "mod_epicloot_me_removespeedpenalty_prefix2": "Easy", + "mod_epicloot_me_removespeedpenalty_prefix3": "Graceful", + "mod_epicloot_me_removespeedpenalty_suffix1": "Agility", + "mod_epicloot_me_removespeedpenalty_suffix2": "Grace", + "mod_epicloot_me_modifyblockpower_display": "Block +{0:0.#}%", + "mod_epicloot_me_modifyblockpower_desc": "Increase the block armor of the magic item by +X%.", + "mod_epicloot_me_modifyblockpower_prefix1": "Stopping", + "mod_epicloot_me_modifyblockpower_prefix2": "Defender's", + "mod_epicloot_me_modifyblockpower_suffix1": "Stopping", + "mod_epicloot_me_modifyblockpower_suffix2": "the Defender", + "mod_epicloot_me_modifyparry_display": "Parry +{0:0.#}%", + "mod_epicloot_me_modifyparry_desc": "Increase the parry block armor, parry force, and parry bonus of the magic by +X%.", + "mod_epicloot_me_modifyparry_prefix1": "Elusive", + "mod_epicloot_me_modifyparry_prefix2": "Rebuking", + "mod_epicloot_me_modifyparry_suffix1": "Repelling", + "mod_epicloot_me_modifyarmor_display": "Armor +{0:0.#}%", + "mod_epicloot_me_modifyarmor_desc": "Increase the armor value of the magic equipment by +X%.", + "mod_epicloot_me_modifyarmor_prefix1": "Heavy", + "mod_epicloot_me_modifyarmor_prefix2": "Protected", + "mod_epicloot_me_modifyarmor_suffix1": "Protection", + "mod_epicloot_me_modifybackstab_display": "Backstab +{0:0.#}%", + "mod_epicloot_me_modifybackstab_desc": "Increase the backstab multiplier of the magic weapon by +X%.", + "mod_epicloot_me_modifybackstab_prefix1": "Assassin's", + "mod_epicloot_me_modifybackstab_prefix2": "Stealthy", + "mod_epicloot_me_modifybackstab_suffix1": "the Assassin", + "mod_epicloot_me_modifybackstab_suffix2": "Stealth", + "mod_epicloot_me_increasehealth_display": "Health +{0:0}", + "mod_epicloot_me_increasehealth_desc": "Increase the player's base maximum health by +X.", + "mod_epicloot_me_increasehealth_prefix1": "Healthy", + "mod_epicloot_me_increasehealth_suffix1": "Health", + "mod_epicloot_me_increasestamina_display": "Stamina +{0:0}", + "mod_epicloot_me_increasestamina_desc": "Increase the player's base maximum stamina by +X.", + "mod_epicloot_me_increasestamina_prefix1": "Enduring", + "mod_epicloot_me_increasestamina_suffix1": "Endurance", + "mod_epicloot_me_modifyhealthregen_display": "Health Regen +{0:0.#}%", + "mod_epicloot_me_modifyhealthregen_desc": "Increase the player's health regeneration by +X%.", + "mod_epicloot_me_modifyhealthregen_prefix1": "Vigorous", + "mod_epicloot_me_modifyhealthregen_suffix1": "Vigor", + "mod_epicloot_me_addhealthregen_display": "Health Regen +{0:0.#}/tick", + "mod_epicloot_me_addhealthregen_desc": "Increase the player's base health regeneration by +X health per tick.", + "mod_epicloot_me_addhealthregen_prefix1": "Rejuvenating", + "mod_epicloot_me_addhealthregen_suffix1": "Rejuvenation", + "mod_epicloot_me_modifystaminaregen_display": "Stamina Regen +{0:0.#}%", + "mod_epicloot_me_modifystaminaregen_desc": "Increase the player's stamina regeneration by +X%.", + "mod_epicloot_me_modifystaminaregen_prefix1": "Recovering", + "mod_epicloot_me_modifystaminaregen_suffix1": "Recovery", + "mod_epicloot_me_addbluntdamage_display": "Blunt Damage +{0:0.#}", + "mod_epicloot_me_addbluntdamage_desc": "Add +X blunt damage to attacks made by the magic weapon.", + "mod_epicloot_me_addbluntdamage_prefix1": "Brute", + "mod_epicloot_me_addbluntdamage_suffix1": "Bludgeoning", + "mod_epicloot_me_addslashingdamage_display": "Slash Damage +{0:0.#}", + "mod_epicloot_me_addslashingdamage_desc": "Add +X slash damage to attacks made by the magic weapon. If the weapon is an axe, add the same amount of chop damage.", + "mod_epicloot_me_addslashingdamage_prefix1": "Sharp", + "mod_epicloot_me_addslashingdamage_prefix2": "Keen", + "mod_epicloot_me_addslashingdamage_suffix1": "Slashing", + "mod_epicloot_me_addslashingdamage_suffix2": "Cutting", + "mod_epicloot_me_addpiercingdamage_display": "Pierce Damage +{0:0.#}", + "mod_epicloot_me_addpiercingdamage_desc": "Add +X pierce damage to attacks made by the magic weapon. If the item is a pickaxe, add the same amount of pickaxe damage.", + "mod_epicloot_me_addpiercingdamage_prefix1": "Spiked", + "mod_epicloot_me_addpiercingdamage_prefix2": "Barbed", + "mod_epicloot_me_addpiercingdamage_suffix1": "Piercing", + "mod_epicloot_me_addfiredamage_display": "Fire Damage +{0:0.#}", + "mod_epicloot_me_addfiredamage_desc": "Add +X fire damage to attacks made by the magic weapon.", + "mod_epicloot_me_addfiredamage_prefix1": "Blazing", + "mod_epicloot_me_addfiredamage_suffix1": "Fire", + "mod_epicloot_me_addfrostdamage_display": "Frost Damage +{0:0.#}", + "mod_epicloot_me_addfrostdamage_desc": "Add +X frost damage to attacks made by the magic weapon.", + "mod_epicloot_me_addfrostdamage_prefix1": "Frigid", + "mod_epicloot_me_addfrostdamage_suffix1": "Frost", + "mod_epicloot_me_addlightningdamage_display": "Lightning Damage +{0:0.#}", + "mod_epicloot_me_addlightningdamage_desc": "Add +X lightning damage to attacks made by the magic weapon.", + "mod_epicloot_me_addlightningdamage_prefix1": "Shocking", + "mod_epicloot_me_addlightningdamage_suffix1": "Lightning", + "mod_epicloot_me_addpoisondamage_display": "Poison Damage +{0:0.#}", + "mod_epicloot_me_addpoisondamage_desc": "Add +X poison damage to attacks made by the magic weapon", + "mod_epicloot_me_addpoisondamage_prefix1": "Infected", + "mod_epicloot_me_addpoisondamage_suffix1": "Poison", + "mod_epicloot_me_addspiritdamage_display": "Spirit Damage +{0:0.#}", + "mod_epicloot_me_addspiritdamage_desc": "Add +X spirit damage to attacks made by the magic weapon.", + "mod_epicloot_me_addspiritdamage_prefix1": "Spirit", + "mod_epicloot_me_addspiritdamage_suffix1": "the Spirits", + "mod_epicloot_me_addfireresistance_display": "Gain fire resistance", + "mod_epicloot_me_addfireresistance_prefix1": "Extinguishing", + "mod_epicloot_me_addfireresistance_suffix1": "Fire Resistance", + "mod_epicloot_me_addfrostresistance_display": "Gain frost resistance", + "mod_epicloot_me_addfrostresistance_prefix1": "Insulated", + "mod_epicloot_me_addfrostresistance_suffix1": "Frost Resistance", + "mod_epicloot_me_addlightningresistance_display": "Gain lightning resistance", + "mod_epicloot_me_addlightningresistance_prefix1": "Grounded", + "mod_epicloot_me_addlightningresistance_suffix1": "Lightning Resistance", + "mod_epicloot_me_addpoisonresistance_display": "Gain poison resistance", + "mod_epicloot_me_addpoisonresistance_prefix1": "Curing", + "mod_epicloot_me_addpoisonresistance_suffix1": "Poison Resistance", + "mod_epicloot_me_addspiritresistance_display": "Gain spirit resistance", + "mod_epicloot_me_addspiritresistance_prefix1": "Serene", + "mod_epicloot_me_addspiritresistance_suffix1": "Spirit Resistance", + "mod_epicloot_me_addfireresistancepercentage_display": "Fire Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addfireresistancepercentage_desc": "The player reduces all fire damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addfireresistancepercentage_prefix1": "Extinguishing", + "mod_epicloot_me_addfireresistancepercentage_suffix1": "Fire Resistance", + "mod_epicloot_me_addfrostresistancepercentage_display": "Frost Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addfrostresistancepercentage_desc": "The player reduces all frost damage taken by +X%. This effect does not provide protection from environmental effects. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addfrostresistancepercentage_prefix1": "Insulated", + "mod_epicloot_me_addfrostresistancepercentage_suffix1": "Frost Resistance", + "mod_epicloot_me_addlightningresistancepercentage_display": "Lightning Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addlightningresistancepercentage_desc": "The player reduces all lightning damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addlightningresistancepercentage_prefix1": "Grounded", + "mod_epicloot_me_addlightningresistancepercentage_suffix1": "Lightning Resistance", + "mod_epicloot_me_addpoisonresistancepercentage_display": "Poison Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addpoisonresistancepercentage_desc": "The player reduces all poison damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addpoisonresistancepercentage_prefix1": "Curing", + "mod_epicloot_me_addpoisonresistancepercentage_suffix1": "Poison Resistance", + "mod_epicloot_me_addspiritresistancepercentage_display": "Spirit Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addspiritresistancepercentage_desc": "The player reduces all spirit damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addspiritresistancepercentage_prefix1": "Serene", + "mod_epicloot_me_addspiritresistancepercentage_suffix1": "Spirit Resistance", + "mod_epicloot_me_addelementalresistancepercentage_display": "Elemental Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addelementalresistancepercentage_desc": "The player reduces all elemental damage (fire, frost, lightning, poison) taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addelementalresistancepercentage_prefix1": "Warding", + "mod_epicloot_me_addelementalresistancepercentage_suffix1": "Elemental Resistance", + "mod_epicloot_me_addbluntresistancepercentage_display": "Blunt Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addbluntresistancepercentage_desc": "The player reduces all blunt damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addbluntresistancepercentage_prefix1": "Defensive", + "mod_epicloot_me_addbluntresistancepercentage_suffix1": "Blunt Resistance", + "mod_epicloot_me_addslashingresistancepercentage_display": "Slash Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addslashingresistancepercentage_desc": "The player reduces all slash damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addslashingresistancepercentage_prefix1": "Impervious", + "mod_epicloot_me_addslashingresistancepercentage_suffix1": "Slashing Resistance", + "mod_epicloot_me_addpiercingresistancepercentage_display": "Pierce Damage Reduction +{0:0.#}%", + "mod_epicloot_me_addpiercingresistancepercentage_desc": "The player reduces all pierce damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addpiercingresistancepercentage_prefix1": "Impenetrable", + "mod_epicloot_me_addpiercingresistancepercentage_suffix1": "Piercing Resistance", + "mod_epicloot_me_addchoppingresistancepercentage_display": "+{0:0.#}% chopping Damage Reduction", + "mod_epicloot_me_addchoppingresistancepercentage_desc": "The player reduces all chopping damage taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addchoppingresistancepercentage_prefix1": "", + "mod_epicloot_me_addchoppingresistancepercentage_suffix1": "", + "mod_epicloot_me_addphysicalresistancepercentage_display": "Physical Damage Reduction +{0:0.#}% ", + "mod_epicloot_me_addphysicalresistancepercentage_desc": "The player reduces all physical damage (blunt, slash, pierce) taken by +X%. This effect stacks cumulatively with other damage reduction effects equipped by the player.", + "mod_epicloot_me_addphysicalresistancepercentage_prefix1": "Resistant", + "mod_epicloot_me_addphysicalresistancepercentage_suffix1": "Physical Resistance", + "mod_epicloot_me_modifymovementspeed_display": "Move Speed +{0:0.#}%", + "mod_epicloot_me_modifymovementspeed_desc": "Increase the player's movement speed by +X%.", + "mod_epicloot_me_modifymovementspeed_prefix1": "Quick", + "mod_epicloot_me_modifymovementspeed_suffix1": "Speed", + "mod_epicloot_me_modifysprintstaminause_display": "Sprint Stamina Use -{0:0.#}%", + "mod_epicloot_me_modifysprintstaminause_desc": "Reduce the player's sprint stamina usage by -X%.", + "mod_epicloot_me_modifysprintstaminause_prefix1": "Sprinter's", + "mod_epicloot_me_modifysprintstaminause_suffix1": "Sprinting", + "mod_epicloot_me_modifyjumpstaminause_display": "Jump Stamina Use -{0:0.#}%", + "mod_epicloot_me_modifyjumpstaminause_desc": "Reduce the player's jump stamina usage by -X%.", + "mod_epicloot_me_modifyjumpstaminause_prefix1": "Acrobat's", + "mod_epicloot_me_modifyjumpstaminause_suffix1": "the Acrobat", + "mod_epicloot_me_modifyattackstaminause_display": "Attack Stamina Use -{0:0.#}%", + "mod_epicloot_me_modifyattackstaminause_prefix1": "Gladiator's", + "mod_epicloot_me_modifyattackstaminause_suffix1": "the Gladiator", + "mod_epicloot_me_modifyattackstaminause_desc": "Reduce the player's attack stamina usage by -X%.", + "mod_epicloot_me_modifyblockstaminause_display": "Block Stamina Use -{0:0.#}%", + "mod_epicloot_me_modifyblockstaminause_prefix1": "Guardian's", + "mod_epicloot_me_modifyblockstaminause_suffix1": "the Guardian", + "mod_epicloot_me_modifyblockstaminause_desc": "Reduce the player's block stamina usage by -X%.", + "mod_epicloot_me_indestructible_display": "Indestructible", + "mod_epicloot_me_indestructible_desc": "The magic item does not use durability and will never break.", + "mod_epicloot_me_indestructible_prefix1": "Indestructible", + "mod_epicloot_me_indestructible_suffix1": "Indestructibility", + "mod_epicloot_me_weightless_display": "Weightless", + "mod_epicloot_me_weightless_desc": "The magic item has a weight of 0.", + "mod_epicloot_me_weightless_prefix1": "Weightless", + "mod_epicloot_me_weightless_suffix1": "Weightlessness", + "mod_epicloot_me_addcarryweight_display": "Carry Weight +{0}", + "mod_epicloot_me_addcarryweight_desc": "Increase the player's maximum carry weight capacity by +X.", + "mod_epicloot_me_addcarryweight_prefix1": "Pocketed", + "mod_epicloot_me_addcarryweight_suffix1": "Pockets", + "mod_epicloot_me_lifesteal_display": "Lifesteal +{0:0.#}%", + "mod_epicloot_me_lifesteal_desc": "The player heals for X% of total damage done with each attack.", + "mod_epicloot_me_lifesteal_prefix1": "Valravn's", + "mod_epicloot_me_lifesteal_suffix1": "Valravn", + "mod_epicloot_me_modifyattackspeed_display": "Attack Speed +{0:0.#}%", + "mod_epicloot_me_modifyattackspeed_desc": "Attacks made with the magic weapon are +X% faster.", + "mod_epicloot_me_modifyattackspeed_prefix1": "Striker's", + "mod_epicloot_me_modifyattackspeed_suffix1": "Striking", + "mod_epicloot_me_throwable_display": "Throwable", + "mod_epicloot_me_throwable_desc": "The player may use the secondary attack to throw the magic weapon.", + "mod_epicloot_me_throwable_prefix1": "Throwing", + "mod_epicloot_me_throwable_suffix1": "Throwing", + "mod_epicloot_me_waterproof_display": "Waterproof", + "mod_epicloot_me_waterproof_desc": "While wearing the magical equipment, the player will not get wet in the rain. Immersion in water will still make the player wet.", + "mod_epicloot_me_waterproof_prefix1": "Waterproof", + "mod_epicloot_me_waterproof_suffix1": "Water-repelling", + "mod_epicloot_me_paralyze_display": "Paralyze for {0:0.#} seconds", + "mod_epicloot_me_paralyze_desc": "Enemies hit with attacks made by the magic weapon will be paralyzed, unable to move or attack, for X seconds.", + "mod_epicloot_me_paralyze_prefix1": "Paralyzing", + "mod_epicloot_me_paralyze_suffix1": "Paralysis", + "mod_epicloot_me_doublejump_display": "Air Jump", + "mod_epicloot_me_doublejump_desc": "While in the air, the player may jump an additional time.", + "mod_epicloot_me_doublejump_prefix1": "Tyr's", + "mod_epicloot_me_doublejump_suffix1": "of the Wind", + "mod_epicloot_me_waterwalk_display": "Water Walking", + "mod_epicloot_me_waterwalk_desc": "While equipped with the magic equipment, the player may walk on the surface of any body of water. The player may equip the item while swimming.", + "mod_epicloot_me_waterwalk_prefix1": "Njord's", + "mod_epicloot_me_waterwalk_prefix2": "Water Walking", + "mod_epicloot_me_waterwalk_suffix1": "of Water Walking", + "mod_epicloot_me_waterwalk_suffix2": "of Njord's Smooth Sea", + "mod_epicloot_me_explosivearrows_display": "Explosive Shot +{0:0.#}%", + "mod_epicloot_me_explosivearrows_desc": "Ranged attacks made by the magic weapon deal +X% attack damage in an area of effect around the projectile impact.", + "mod_epicloot_me_explosivearrows_prefix1": "Exploding", + "mod_epicloot_me_explosivearrows_suffix1": "Explosive", + "mod_epicloot_me_quickdraw_display": "Quick Draw +{0:0.#}%", + "mod_epicloot_me_quickdraw_desc": "Increases the draw speed of the magic bow by +X%.", + "mod_epicloot_me_quickdraw_prefix1": "Quick-draw", + "mod_epicloot_me_quickdraw_suffix1": "Quickness", + "mod_epicloot_me_addswordsskill_display": "Swords Skill +{0}", + "mod_epicloot_me_addswordsskill_desc": "Increases the player's swords skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addswordsskill_prefix1": "Blademaster's", + "mod_epicloot_me_addswordsskill_suffix1": "the Blademaster", + "mod_epicloot_me_addknivesskill_display": "Knives Skill +{0}", + "mod_epicloot_me_addknivesskill_desc": "Increases the player's knives skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addknivesskill_prefix1": "Scoundrel's", + "mod_epicloot_me_addknivesskill_suffix1": "the Scoundrel", + "mod_epicloot_me_addclubsskill_display": "Clubs Skill +{0}", + "mod_epicloot_me_addclubsskill_desc": "Increases the player's clubs skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addclubsskill_prefix1": "Bruiser's", + "mod_epicloot_me_addclubsskill_suffix1": "the Bruiser", + "mod_epicloot_me_addpolearmsskill_display": "Polearms Skill +{0}", + "mod_epicloot_me_addpolearmsskill_desc": "Increases the player's polearms skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addpolearmsskill_prefix1": "Halberdier's", + "mod_epicloot_me_addpolearmsskill_suffix1": "the Halberdier", + "mod_epicloot_me_addspearsskill_display": "Spears Skill +{0}", + "mod_epicloot_me_addspearsskill_desc": "Increases the player's spears skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addspearsskill_prefix1": "Hunter's", + "mod_epicloot_me_addspearsskill_suffix1": "the Hunter", + "mod_epicloot_me_addblockingskill_display": "Blocking Skill +{0}", + "mod_epicloot_me_addblockingskill_desc": "Increases the player's blocking skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addblockingskill_prefix1": "Shieldmaiden's", + "mod_epicloot_me_addblockingskill_suffix1": "the Shieldmaiden", + "mod_epicloot_me_addaxesskill_display": "Axes Skill +{0}", + "mod_epicloot_me_addaxesskill_desc": "Increases the player's axes and woodcutting skill levels by +X. This may cause the skills' level to increase above 100.", + "mod_epicloot_me_addaxesskill_prefix1": "Viking's", + "mod_epicloot_me_addaxesskill_suffix1": "the Viking", + "mod_epicloot_me_addbowsskill_display": "Bows Skill +{0}", + "mod_epicloot_me_addbowsskill_desc": "Increases the player's bows skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addbowsskill_prefix1": "Archer's", + "mod_epicloot_me_addbowsskill_suffix1": "Archery", + "mod_epicloot_me_addunarmedskill_display": "Unarmed Skill +{0}", + "mod_epicloot_me_addunarmedskill_desc": "Increases the player's unarmed skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addunarmedskill_prefix1": "Brawler's", + "mod_epicloot_me_addunarmedskill_suffix1": "Brawling", + "mod_epicloot_me_addpickaxesskill_display": "Pickaxes Skill +{0}", + "mod_epicloot_me_addpickaxesskill_desc": "Increases the player's pickaxes skill level by +X. This may cause the skill level to increase above 100.", + "mod_epicloot_me_addpickaxesskill_prefix1": "Mining", + "mod_epicloot_me_addpickaxesskill_suffix1": "the Miner", + "mod_epicloot_me_addmovementskills_display": "Movement Skills +{0}", + "mod_epicloot_me_addmovementskills_desc": "Increases the player's run, jump, swim, and sneak skill levels by +X. This may cause the skills' level to increase above 100.", + "mod_epicloot_me_addmovementskills_prefix1": "Adventuring", + "mod_epicloot_me_addmovementskills_suffix1": "the Adventurer", + "mod_epicloot_me_modifystaggerduration_display": "Stagger Duration +{0:0.#}%", + "mod_epicloot_me_modifystaggerduration_desc": "Increase the stagger duration by +X% against enemies when staggered by attacks from the magic weapon.", + "mod_epicloot_me_modifystaggerduration_prefix1": "Basher's", + "mod_epicloot_me_modifystaggerduration_suffix1": "Staggering", + "mod_epicloot_me_quicklearner_display": "Quick Learner +{0:0.#}%", + "mod_epicloot_me_quicklearner_desc": "All skills improve +X% faster.", + "mod_epicloot_me_quicklearner_prefix1": "Student's", + "mod_epicloot_me_quicklearner_suffix1": "the Student", + "mod_epicloot_me_recallweapon_display": "Recalling", + "mod_epicloot_me_recallweapon_desc": "The thrown magic weapon automatically returns to the player after being thrown.", + "mod_epicloot_me_recallweapon_prefix1": "Recaller's", + "mod_epicloot_me_recallweapon_suffix1": "Recalling", + "mod_epicloot_me_reflectdamage_display": "Thorns +{0:0.#}%", + "mod_epicloot_me_reflectdamage_desc": "Reflect +X% of damage back to attacker", + "mod_epicloot_me_reflectdamage_prefix1": "Reflector's", + "mod_epicloot_me_reflectdamage_suffix1": "Reflecting", + "mod_epicloot_me_avoiddamagetaken_display": "Feint +{0:0.#}%", + "mod_epicloot_me_avoiddamagetaken_desc": "The player has a +X% chance to automatically avoid all damage from an attack.", + "mod_epicloot_me_avoiddamagetaken_prefix1": "Artful Dodger's", + "mod_epicloot_me_avoiddamagetaken_suffix1": "the Artful Dodger", + "mod_epicloot_me_staggerondamagetaken_display": "Stagger Chance +{0:0.#}%", + "mod_epicloot_me_staggerondamagetaken_desc": "Increase the chance to stagger the enemy by +X% for attacks made with the magic weapon.", + "mod_epicloot_me_staggerondamagetaken_prefix1": "Avenger's", + "mod_epicloot_me_staggerondamagetaken_suffix1": "Vengeance", + "mod_epicloot_me_featherfall_display": "Feather Fall", + "mod_epicloot_me_featherfall_desc": "The player falls slowly and is immune to fall damage.", + "mod_epicloot_me_featherfall_prefix1": "Feathery", + "mod_epicloot_me_featherfall_suffix1": "the Feather", + "mod_epicloot_me_modifydiscoveryradius_display": "Discovery Radius +{0:0.#}%", + "mod_epicloot_me_modifydiscoveryradius_desc": "The player's map discovery radius is increased by +X%.", + "mod_epicloot_me_modifydiscoveryradius_prefix1": "Explorer's", + "mod_epicloot_me_modifydiscoveryradius_suffix1": "the Explorer", + "mod_epicloot_me_freebuild_display": "Free Build", + "mod_epicloot_me_freebuild_desc": "When using the magic hammer, buildings can be built without the required crafting station nearby.", + "mod_epicloot_me_freebuild_prefix1": "Builder's", + "mod_epicloot_me_freebuild_suffix1": "the Builder", + "mod_epicloot_me_comfortable_display": "Comfort +{0}", + "mod_epicloot_me_comfortable_desc": "When resting and wearing the magic equipment, the player's comfort level is increased by +X.", + "mod_epicloot_me_comfortable_prefix1": "Comfortable", + "mod_epicloot_me_comfortable_suffix1": "Comfort", + "mod_epicloot_me_modifymovementspeedlowhealth_display": "Move Speed +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifymovementspeedlowhealth_desc": "The player's movement speed is increased by +X% when below 30% health.", + "mod_epicloot_me_modifymovementspeedlowhealth_prefix1": "Quick", + "mod_epicloot_me_modifymovementspeedlowhealth_suffix1": "Speed", + "mod_epicloot_me_modifyhealthregenlowhealth_display": "Health Regen +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifyhealthregenlowhealth_desc": "The player's health regene is increased by +X% when below 30% health.", + "mod_epicloot_me_modifyhealthregenlowhealth_prefix1": "Vigorous", + "mod_epicloot_me_modifyhealthregenlowhealth_suffix1": "Vigor", + "mod_epicloot_me_modifystaminaregenlowhealth_display": "Stamina Regen +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifystaminaregenlowhealth_desc": "The player's stamina regen is increased by +X% when below 30% health.", + "mod_epicloot_me_modifystaminaregenlowhealth_prefix1": "Recovering", + "mod_epicloot_me_modifystaminaregenlowhealth_suffix1": "Recovery", + "mod_epicloot_me_modifyarmorlowhealth_display": "All Armor +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifyarmorlowhealth_desc": "The player's total armor is increased by +X% when below 30% health.", + "mod_epicloot_me_modifyarmorlowhealth_prefix1": "Heavy", + "mod_epicloot_me_modifyarmorlowhealth_prefix2": "Protected", + "mod_epicloot_me_modifyarmorlowhealth_suffix1": "Protection", + "mod_epicloot_me_modifydamagelowhealth_display": "Damage +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifydamagelowhealth_desc": "The player's total damage is increased by +X% when below 30% health.", + "mod_epicloot_me_modifydamagelowhealth_prefix1": "Berserker's", + "mod_epicloot_me_modifydamagelowhealth_suffix1": "the Berserker", + "mod_epicloot_me_modifyblockpowerlowhealth_display": "Block +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifyblockpowerlowhealth_desc": "The player's block armor is increased by +X% when below 30% health.", + "mod_epicloot_me_modifyblockpowerlowhealth_prefix1": "Stopping", + "mod_epicloot_me_modifyblockpowerlowhealth_prefix2": "Defender's", + "mod_epicloot_me_modifyblockpowerlowhealth_suffix1": "Stopping", + "mod_epicloot_me_modifyblockpowerlowhealth_suffix2": "the Defender", + "mod_epicloot_me_modifyparrylowhealth_display": "Parry +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifyparrylowhealth_desc": "The player's parry block armor, parry force, and parry bonus are increased by +X% when below 30% health.", + "mod_epicloot_me_modifyparrylowhealth_prefix1": "Elusive", + "mod_epicloot_me_modifyparrylowhealth_prefix2": "Rebuking", + "mod_epicloot_me_modifyparrylowhealth_suffix1": "Repelling", + "mod_epicloot_me_modifyattackspeedlowhealth_display": "Attack Speed +{0:0.#}% (Health Critical)", + "mod_epicloot_me_modifyattackspeedlowhealth_desc": "The player's attack speed is increased by +X% when below 30% health.", + "mod_epicloot_me_modifyattackspeedlowhealth_prefix1": "Striker's", + "mod_epicloot_me_modifyattackspeedlowhealth_suffix1": "Striking", + "mod_epicloot_me_avoiddamagetakenlowhealth_display": "Feint +{0:0.#}% (Health Critical)", + "mod_epicloot_me_avoiddamagetakenlowhealth_desc": "The player's chance to avoid incoming attacks is increased by +X% when below 30% health.", + "mod_epicloot_me_avoiddamagetakenlowhealth_prefix1": "Artful Dodger's", + "mod_epicloot_me_avoiddamagetakenlowhealth_suffix1": "the Artful Dodger", + "mod_epicloot_me_lifesteallowhealth_display": "Lifesteal {0:0.0}% (Health Critical)", + "mod_epicloot_me_lifesteallowhealth_desc": "The player heals for +X% of attack damage when below 30% health.", + "mod_epicloot_me_lifesteallowhealth_prefix1": "Valravn's", + "mod_epicloot_me_lifesteallowhealth_suffix1": "Valravn", + "mod_epicloot_me_glowing_display": "Glowing", + "mod_epicloot_me_glowing_desc": "The player glows with a faint light.", + "mod_epicloot_me_glowing_prefix1": "Glowing", + "mod_epicloot_me_glowing_suffix1": "Light", + "mod_epicloot_me_executioner_display": "Executioner +{0}%", + "mod_epicloot_me_executioner_desc": "The first attack on an enemy that is below 20% health deals +X% damage.", + "mod_epicloot_me_executioner_prefix1": "Executioner's", + "mod_epicloot_me_executioner_suffix1": "Execution", + "mod_epicloot_me_riches_display": "Riches +{0:0.#}%", + "mod_epicloot_me_riches_desc": "Slain enemies have a +X% increased chance to drop coins or treasure.", + "mod_epicloot_me_riches_prefix1": "Rich", + "mod_epicloot_me_riches_suffix1": "Riches", + "mod_epicloot_me_opportunist_display": "Opportunist +{0:0.#}%", + "mod_epicloot_me_opportunist_desc": "Attacks made against staggered enemies have a +X% chance to deal backstab damage.", + "mod_epicloot_me_opportunist_prefix1": "Opportunist's", + "mod_epicloot_me_opportunist_suffix1": "Opportunity", + "mod_epicloot_me_duelist_display": "Duelist +{0:0.#}%", + "mod_epicloot_me_duelist_desc": "When using the magic weapon without anything in the player's off hand, its block armor is increased by +X% of the weapon's attack power, and its parry force is increased by +X/2% of the weapon's attack power.", + "mod_epicloot_me_duelist_prefix1": "Duelist's", + "mod_epicloot_me_duelist_suffix1": "Dueling", + "mod_epicloot_me_immovable_display": "Immovable", + "mod_epicloot_me_immovable_desc": "The player is immune to knockback and stagger while blocking with the magic shield.", + "mod_epicloot_me_immovable_prefix1": "Pillar's", + "mod_epicloot_me_immovable_suffix1": "the Pillar", + "mod_epicloot_me_modifystaggerdamage_display": "Stagger Damage +{0:0.#}%", + "mod_epicloot_me_modifystaggerdamage_desc": "Increase damage to staggered enemies by +X%.", + "mod_epicloot_me_modifystaggerdamage_prefix1": "Cunning", + "mod_epicloot_me_modifystaggerdamage_suffix1": "Cunning", + "mod_epicloot_me_luck_display": "Luck +{0}", + "mod_epicloot_me_luck_desc": "Increase the chance to find higher rarity magic items.", + "mod_epicloot_me_luck_prefix1": "Lucky", + "mod_epicloot_me_luck_suffix1": "Luck", + "mod_epicloot_me_modifyparrywindow_display": "Parry Window +{0} ms", + "mod_epicloot_me_modifyparrywindow_desc": "Increase the time window for blocks to count as a parry by +X ms.", + "mod_epicloot_me_modifyparrywindow_prefix1": "Parrying Expert's", + "mod_epicloot_me_modifyparrywindow_suffix1": "Expert Parrying", + "mod_epicloot_me_slow_display": "Slow +{0:0.#}%", + "mod_epicloot_me_slow_desc": "Slows the attack and movement speed of creatures being hit by +X% for 2 seconds. Bosses are immune to this effect.", + "mod_epicloot_me_slow_prefix1": "Sluggish", + "mod_epicloot_me_slow_suffix1": "Lethargy", + + "mod_epicloot_set_me_bulwark": "Bulwark [Activated]: Prevent all damage for 5 seconds. Cooldown: 60 seconds.", + "mod_epicloot_set_me_undying": "Undying [Passive]: On death, regain full health. Cooldown: 20 minutes.", + "mod_epicloot_set_me_frostdamageaoe_display": "Melee attacks that deal frost damage deal an additional 50% of weapon damage as frost in a cone in front of the attacker.", + "mod_epicloot_set_me_berserker": "Berserker [Activated]: For 10 seconds, you cannot regenerate health, but you gain +50% to +200% damage based on health missing. Cooldown: 3 minutes.", + + "mod_epicloot_basicmagicnameformat": "Magic {0}", // 0 = base name + "mod_epicloot_fullnameformat": "{0}{1}{2}", // 0 = prefix, 1 = base name, 2 = suffix + "mod_epicloot_prefixformat": "{0} ", + "mod_epicloot_suffixformat": " of {0}", + "mod_epicloot_epicnameformat": "{0} {1}", // 0 = adjective, 1 = name + "mod_epicloot_basiclegendarynameformat": "Legendary {0}", // 0 = base name + + "mod_epicloot_rare_prefix1": "Strange", + "mod_epicloot_rare_prefix2": "Rare", + "mod_epicloot_rare_prefix3": "Cryptic", + "mod_epicloot_rare_suffix1": "Secrets", + "mod_epicloot_rare_suffix2": "Mystery", + "mod_epicloot_rare_suffix3": "Obscurity", + + "mod_epicloot_epic_aesir": "Aesir", + "mod_epicloot_epic_alfheim": "Alfheim", + "mod_epicloot_epic_andvaris": "Andvari's", + "mod_epicloot_epic_askrs": "Askr's", + "mod_epicloot_epic_beast": "Beast", + "mod_epicloot_epic_berserker": "Berserker", + "mod_epicloot_epic_black": "Black", + "mod_epicloot_epic_blood": "Blood", + "mod_epicloot_epic_bone": "Bone", + "mod_epicloot_epic_carrion": "Carrion", + "mod_epicloot_epic_chaos": "Chaos", + "mod_epicloot_epic_crow": "Crow", + "mod_epicloot_epic_cruel": "Cruel", + "mod_epicloot_epic_death": "Death", + "mod_epicloot_epic_doom": "Doom", + "mod_epicloot_epic_dread": "Dread", + "mod_epicloot_epic_dverger": "Dverger", + "mod_epicloot_epic_dokkalfar": "Dokkalfar", + "mod_epicloot_epic_emblas": "Embla's", + "mod_epicloot_epic_fell": "Fell", + "mod_epicloot_epic_fiend": "Fiend", + "mod_epicloot_epic_giant": "Giant", + "mod_epicloot_epic_giantess": "Giantess", + "mod_epicloot_epic_glyph": "Glyph", + "mod_epicloot_epic_greyfell": "Greyfell", + "mod_epicloot_epic_grim": "Grim", + "mod_epicloot_epic_havoc": "Havoc", + "mod_epicloot_epic_heathen": "Heathen", + "mod_epicloot_epic_hel": "Hel", + "mod_epicloot_epic_ljosalfar": "Ljosalfar", + "mod_epicloot_epic_midgard": "Midgard", + "mod_epicloot_epic_nibelung": "Nibelung", + "mod_epicloot_epic_niflheim": "Niflheim", + "mod_epicloot_epic_norn": "Norn", + "mod_epicloot_epic_northgard": "Northgard", + "mod_epicloot_epic_omen": "Omen", + "mod_epicloot_epic_order": "Order", + "mod_epicloot_epic_pain": "Pain", + "mod_epicloot_epic_plague": "Plague", + "mod_epicloot_epic_rage": "Rage", + "mod_epicloot_epic_ragnarok": "Ragnarok", + "mod_epicloot_epic_ransack": "Ransack", + "mod_epicloot_epic_raven": "Raven", + "mod_epicloot_epic_saga": "Saga", + "mod_epicloot_epic_scathe": "Scathe", + "mod_epicloot_epic_shadow": "Shadow", + "mod_epicloot_epic_skulds": "Skuld's", + "mod_epicloot_epic_skull": "Skull", + "mod_epicloot_epic_slaughter": "Slaughter", + "mod_epicloot_epic_svartalfar": "Svartalfar", + "mod_epicloot_epic_troll": "Troll", + "mod_epicloot_epic_valhalla": "Valhalla", + "mod_epicloot_epic_vali": "Vali", + "mod_epicloot_epic_valkyrie": "Valkyrie", + "mod_epicloot_epic_vanir": "Vanir", + "mod_epicloot_epic_vitharr": "Vitharr", + "mod_epicloot_epic_white": "White", + "mod_epicloot_epic_wrath": "Wrath", + "mod_epicloot_epic_yggdrasill": "Yggdrasill", + "mod_epicloot_epic_ymir": "Ymir", + "mod_epicloot_epic_fleet": "Fleet", + "mod_epicloot_epic_swift": "Swift", + "mod_epicloot_epic_ash": "Ash", + "mod_epicloot_epic_blaze": "Blaze", + "mod_epicloot_epic_char": "Char", + "mod_epicloot_epic_conflagration": "Conflagration", + "mod_epicloot_epic_drake": "Drake", + "mod_epicloot_epic_inferno": "Inferno", + "mod_epicloot_epic_surt": "Surt", + "mod_epicloot_epic_blizzard": "Blizzard", + "mod_epicloot_epic_chill": "Chill", + "mod_epicloot_epic_frost": "Frost", + "mod_epicloot_epic_glacier": "Glacier", + "mod_epicloot_epic_hail": "Hail", + "mod_epicloot_epic_shock": "Shock", + "mod_epicloot_epic_storm": "Storm", + "mod_epicloot_epic_tempest": "Tempest", + "mod_epicloot_epic_blight": "Blight", + "mod_epicloot_epic_caustic": "Caustic", + "mod_epicloot_epic_contagion": "Contagion", + "mod_epicloot_epic_corruption": "Corruption", + "mod_epicloot_epic_toxic": "Toxic", + "mod_epicloot_epic_venom": "Venom", + "mod_epicloot_epic_eidolon": "Eidolon", + "mod_epicloot_epic_phantasm": "Phantasm", + "mod_epicloot_epic_soul": "Soul", + "mod_epicloot_epic_spectre": "Spectre", + "mod_epicloot_epic_spirit": "Spirit", + "mod_epicloot_epic_wraith": "Wraith", + "mod_epicloot_epic_aegis": "Aegis", + "mod_epicloot_epic_apparatus": "Apparatus", + "mod_epicloot_epic_badge": "Badge", + "mod_epicloot_epic_band": "Band", + "mod_epicloot_epic_bar": "Bar", + "mod_epicloot_epic_barb": "Barb", + "mod_epicloot_epic_beacon": "Beacon", + "mod_epicloot_epic_blade": "Blade", + "mod_epicloot_epic_bludgeon": "Bludgeon", + "mod_epicloot_epic_bolt": "Bolt", + "mod_epicloot_epic_branch": "Branch", + "mod_epicloot_epic_brand": "Brand", + "mod_epicloot_epic_breaker": "Breaker", + "mod_epicloot_epic_brow": "Brow", + "mod_epicloot_epic_buckle": "Buckle", + "mod_epicloot_epic_bulwark": "Bulwark", + "mod_epicloot_epic_carapace": "Carapace", + "mod_epicloot_epic_casque": "Casque", + "mod_epicloot_epic_chain": "Chain", + "mod_epicloot_epic_charm": "Charm", + "mod_epicloot_epic_chopper": "Chopper", + "mod_epicloot_epic_cleaver": "Cleaver", + "mod_epicloot_epic_cloak": "Cloak", + "mod_epicloot_epic_cowl": "Cowl", + "mod_epicloot_epic_crest": "Crest", + "mod_epicloot_epic_crown": "Crown", + "mod_epicloot_epic_crusher": "Crusher", + "mod_epicloot_epic_dart": "Dart", + "mod_epicloot_epic_edge": "Edge", + "mod_epicloot_epic_emblem": "Emblem", + "mod_epicloot_epic_eye": "Eye", + "mod_epicloot_epic_fang": "Fang", + "mod_epicloot_epic_flange": "Flange", + "mod_epicloot_epic_fletch": "Fletch", + "mod_epicloot_epic_flight": "Flight", + "mod_epicloot_epic_fortress": "Fortress", + "mod_epicloot_epic_gadget": "Gadget", + "mod_epicloot_epic_gizmo": "Gizmo", + "mod_epicloot_epic_gnash": "Gnash", + "mod_epicloot_epic_gorget": "Gorget", + "mod_epicloot_epic_greaves": "Greaves", + "mod_epicloot_epic_grinder": "Grinder", + "mod_epicloot_epic_guard": "Guard", + "mod_epicloot_epic_harness": "Harness", + "mod_epicloot_epic_heart": "Heart", + "mod_epicloot_epic_hew": "Hew", + "mod_epicloot_epic_horn": "Horn", + "mod_epicloot_epic_impaler": "Impaler", + "mod_epicloot_epic_jack": "Jack", + "mod_epicloot_epic_knot": "Knot", + "mod_epicloot_epic_lock": "Lock", + "mod_epicloot_epic_mallet": "Mallet", + "mod_epicloot_epic_mangler": "Mangler", + "mod_epicloot_epic_mantle": "Mantle", + "mod_epicloot_epic_mark": "Mark", + "mod_epicloot_epic_mask": "Mask", + "mod_epicloot_epic_nails": "Nails", + "mod_epicloot_epic_needle": "Needle", + "mod_epicloot_epic_nock": "Nock", + "mod_epicloot_epic_pelt": "Pelt", + "mod_epicloot_epic_pickaxe": "Pickaxe", + "mod_epicloot_epic_pickhammer": "Pickhammer", + "mod_epicloot_epic_razor": "Razor", + "mod_epicloot_epic_reaver": "Reaver", + "mod_epicloot_epic_rend": "Rend", + "mod_epicloot_epic_scourge": "Scourge", + "mod_epicloot_epic_scythe": "Scythe", + "mod_epicloot_epic_sever": "Sever", + "mod_epicloot_epic_shanks": "Shanks", + "mod_epicloot_epic_shell": "Shell", + "mod_epicloot_epic_shield": "Shield", + "mod_epicloot_epic_shroud": "Shroud", + "mod_epicloot_epic_slayer": "Slayer", + "mod_epicloot_epic_smasher": "Smasher", + "mod_epicloot_epic_song": "Song", + "mod_epicloot_epic_spike": "Spike", + "mod_epicloot_epic_splitter": "Splitter", + "mod_epicloot_epic_spur": "Spur", + "mod_epicloot_epic_stabber": "Stabber", + "mod_epicloot_epic_stalker": "Stalker", + "mod_epicloot_epic_sting": "Sting", + "mod_epicloot_epic_suit": "Suit", + "mod_epicloot_epic_sunder": "Sunder", + "mod_epicloot_epic_sword": "Sword", + "mod_epicloot_epic_talisman": "Talisman", + "mod_epicloot_epic_thirst": "Thirst", + "mod_epicloot_epic_tool": "Tool", + "mod_epicloot_epic_tower": "Tower", + "mod_epicloot_epic_track": "Track", + "mod_epicloot_epic_trample": "Trample", + "mod_epicloot_epic_treader": "Treader", + "mod_epicloot_epic_turn": "Turn", + "mod_epicloot_epic_veil": "Veil", + "mod_epicloot_epic_visage": "Visage", + "mod_epicloot_epic_visor": "Visor", + "mod_epicloot_epic_ward": "Ward", + "mod_epicloot_epic_wrack": "Wrack", + "mod_epicloot_epic_wrap": "Wrap", + + "mod_epicloot_l_fafnir": "Fafnir's Bloody Talon", + "mod_epicloot_l_luff": "Lancing Luff's Lancer Lance of Lancing", + "mod_epicloot_l_dyrnwyn": "Dyrnwyn, the White-Hilt", + "mod_epicloot_l_dyrnwyn_desc": "Sword of King Ryhdderch Hael the Generous. When drawn by a worthy soul, the entire blade blazes with fire.", + "mod_epicloot_l_sleipnirshoof": "Sleipnir's Hoof", + "mod_epicloot_l_sleipnirshoof_desc": "A gnarled and mummified horse's foreleg. The hoof is incredibly hard and sharp. Those who weild it feel the urge to gallop.", + "mod_epicloot_l_gungnir": "Gungnir, Spear of Odin", + "mod_epicloot_l_gungnir_desc": "Fashioned from the wood of the world tree Yggdrasil and engraved with the contracts from which Odin's power derives.", + "mod_epicloot_l_mjolnir": "Mjolnir, Hammer of Thor", + "mod_epicloot_l_mjolnir_desc": "\"Mjolnir hurled forth towards the savage crew, and slew all the mountain-giants, who with Hyimir had him pursued.\" -Hymiskvida, Poetic Edda", + "mod_epicloot_l_lokis": "Lævateinn, Knife of Loki", + "mod_epicloot_l_lokis_desc": "Created to destroy the falcon Víðópnir, it crackles with godlike energies.", + "mod_epicloot_l_valk": "Strength of the Valkyrie", + "mod_epicloot_l_valk_desc": "Those nearest to death are closest to glory.", + "mod_epicloot_l_skofnung": "Skofnung", + "mod_epicloot_l_skofnung_desc": "The blade of legendary king Hrólfr Kraki, supernaturally sharp and imbued with the souls of his 12 faithful berserker bodyguards.", + "mod_epicloot_l_gram": "Gram", + "mod_epicloot_l_gram_desc": "The blade pulled from the tree, broken by Odin and reforged by dwarves, the slayer of Fafnir- it is the legendary blade itself!", + "mod_epicloot_l_angurvadal": "Angurvadal", + "mod_epicloot_l_angurvadal_desc": "Inscribed with runes, the sword of Fritiof is dim in times of peace, but brightly glows in times of war.", + "mod_epicloot_l_shard": "The Shattering", + "mod_epicloot_l_shard_desc": "Forged from shards harvested from the shattered edges of reality iself, from when Valheim was sundered from the realms.", + "mod_epicloot_l_gunnar": "Atgier of Sagas", + "mod_epicloot_l_gunnar_desc": "Gunnar Hámundarson's legendary Atgeir, said to sing when taken down for battle. It cuts as sharp as any song.", + "mod_epicloot_l_skadi": "Skaði's Hunt", + "mod_epicloot_l_skadi_desc": "The favored weapon of the goddess of the hunt, it's weilder is imbued with the swiftness of her legendary skis.", + "mod_epicloot_l_ullr": "Ullr's Favor", + "mod_epicloot_l_ullr_desc": "Ullr's mighty bow of the winter hunt, often given as a reward to those who have done favors for Odin. It seems that you are the latest to have gained his gratitude.", + "mod_epicloot_l_endbow": "The Endless Hunt", + "mod_epicloot_l_endbow_desc": "Forged from star fire and imbued with the legacy of your heroic deeds, this bow will never fail you. The Hunter of the Forsaken will never falter.", + "mod_epicloot_l_lind": "Message of Lindisfame", + "mod_epicloot_l_lind_desc": "Let all those who think they are safe and forever protected know- Odin's war is coming.", + "mod_epicloot_l_hofund": "Höfuð", + "mod_epicloot_l_hofund_desc": "The sword of Heimdall, the watchman of the gods and the keeper of the Bifrost bridge to Asgard. This blade is truly worthy of the eternal watchman.", + "mod_epicloot_l_njord": "Njǫrd's Favor", + "mod_epicloot_l_njord_desc": "The god Njǫrd, ruler of wind, sea, and riches, caught a piece of hurricane gale and fashioned it into this knife. A blade as swift and cutting as the northern wind.", + "mod_epicloot_l_bloodmace": "Life-Drinker", + "mod_epicloot_l_bloodmace_desc": "The spirits of the deathsquitos remain in this weapon, thirsting to drink deep of blood and grow strong.", + + "mod_epicloot_l_heimdalltowershield": "Guardian of the Gods", + "mod_epicloot_l_heimdalltowershield_desc": "None shall cross the burning rainbow bridge of Bifrost whilst Heimdall bars the way.", + "mod_epicloot_l_heimdallhelmet": "Son of Nine Mothers", + "mod_epicloot_l_heimdallhelmet_desc": "\"Nine Jotunn maids gave birth, to the gracious god, Heimdall, at the world's edge. Strong was he made with the might of the Earth, with the ice-cold Sea, and with Boar's blood.\" -Voluspa hin skamma, Poetic Edda", + "mod_epicloot_l_heimdallchest": "Heart of the Bifrost", + "mod_epicloot_l_heimdallchest_desc": "You, warrior, enter the sanctuary of Himinbjorg. Be at rest in Heimdall's tranquil home and drink joyful of the good mead.", + "mod_epicloot_l_heimdalllegs": "Stride of the Aesir", + "mod_epicloot_l_heimdalllegs_desc": "Heimdall, in his eternal vigilance, was blessed by the Aesir to appear precisely where and when he was needed the most.", + "mod_epicloot_l_ragnarbattleaxe": "Serpentsbane", + "mod_epicloot_l_ragnarbattleaxe_desc": "The blade that sliced the dire-serpent's head from its body, thus winning Ragnar the affections of Thora Borgarhjort.", + "mod_epicloot_l_ragnarcape": "Ragnar's Boneless Wrap", + "mod_epicloot_l_ragnarcape_desc": "Provides you with wisdom, cunning, and mastery of battle tactics. Especially when invading Northumbria.", + "mod_epicloot_l_ragnarchest": "Ragnar's White Shirt", + "mod_epicloot_l_ragnarchest_desc": "Wear this cuirass when you seek vengeance or justice.", + "mod_epicloot_l_ragnarlegs": "Ragnar's Ironsides", + "mod_epicloot_l_ragnarlegs_desc": "Go forth, and inflict great slaughter upon the enemy, gained from the strength of your Ironsides.", + + "mod_epicloot_set_heimdall": "Heimdall's Legacy", + "mod_epicloot_set_ragnar": "Ragnar's Fury", + + "mod_epicloot_magic": "Magic", + "mod_epicloot_rare": "Rare", + "mod_epicloot_epic": "Epic", + "mod_epicloot_legendary": "Legendary", + "mod_epicloot_legendarysetlabel": "Legendary Set Item" +} diff --git a/ValheimClient/BepInEx/plugins/EquipmentAndQuickSlots/EquipmentAndQuickSlots.dll b/ValheimClient/BepInEx/plugins/EquipmentAndQuickSlots/EquipmentAndQuickSlots.dll new file mode 100644 index 0000000..42dc3e1 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/EquipmentAndQuickSlots/EquipmentAndQuickSlots.dll differ diff --git a/ValheimClient/BepInEx/plugins/ExtendedItemDataFramework/ExtendedItemDataFramework.dll b/ValheimClient/BepInEx/plugins/ExtendedItemDataFramework/ExtendedItemDataFramework.dll new file mode 100644 index 0000000..a664d4a Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ExtendedItemDataFramework/ExtendedItemDataFramework.dll differ diff --git a/ValheimClient/BepInEx/plugins/HugosArmory/ValheimHTDArmory.dll b/ValheimClient/BepInEx/plugins/HugosArmory/ValheimHTDArmory.dll new file mode 100644 index 0000000..087fbc9 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/HugosArmory/ValheimHTDArmory.dll differ diff --git a/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll new file mode 100644 index 0000000..690206c Binary files /dev/null and b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll differ diff --git a/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll.mdb b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll.mdb new file mode 100644 index 0000000..d0a9c5c Binary files /dev/null and b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.dll.mdb differ diff --git a/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.pdb b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.pdb new file mode 100644 index 0000000..37f9f2a Binary files /dev/null and b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.pdb differ diff --git a/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.xml b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.xml new file mode 100644 index 0000000..41e59ba --- /dev/null +++ b/ValheimClient/BepInEx/plugins/Jotunn/Jotunn.xml @@ -0,0 +1,6265 @@ + + + + Jotunn + + + + + Configuration class for adding custom inputs and custom key hints.
+ See + for more information on Unity Input handling. +
+
+ + + Name of the config. Use this to react to the button press bound by this config. + + + + + Axis string this config should be bound to.
+ Use special Axis "Mouse ScrollWheel" to display the scroll icon as the key hint. +
+
+ + + Private store for the Key property + + + + + Unity KeyCode this config should be bound to. + + + + + BepInEx configuration entry of a KeyCode that should be used. + Overrides the value of this config. + + + + + Private store for the shortcut + + + + + BepInEx KeyboardShortcut this config should be bound to. + + + + + BepInEx configuration entry of a KeyCode that should be used. + Overrides the value of this config. + + + + + Private store for the GamepadButton property + + + + + GamepadButton this config should be bound to for gamepads. + + + + + BepInEx configuration entry of a GamepadButton that should be used. + Overrides the value of this config. + + + + + Should the Axis value be inverted? + + + + + Delay until a constantly pressed key is considered "pressed" again. + + + + + Interval in which the check timer for the repeat delay is decremented. + + + + + Token for translating the key hint text. + + + + + Should this button react on key presses when a Valheim GUI is open? Defaults to false. + + + + + Should this button react on key presses when a custom GUI is open and requested to block input? Defaults to false. + + + + + Should this button block all other inputs using the same key or button? Defaults to false.
+ Warning: If set to true, all other input using the same key or axis is reset when queried via ZInput. + Make sure to gate your usage properly. +
+
+ + + Internal flag if this button config is backed by any BepInEx ConfigEntry + + + + + Base class for adding new ItemConversions to various Valheim stations + + + + + The name of the station prefab this conversion is added to. + + + + + The name of the item prefab you need to put ín the station. + + + + + The name of the item prefab that your "FromItem" will be turned into. + + + + + Used to add new ItemConversions to the CookingStation + + + + + The name of the station prefab this conversion is added to. Defaults to "piece_cookingstation". + + + + + Amount of time it takes to perform the conversion. Defaults to 10f. + + + + + Turns the CookingConversionConfig into a Valheim CookingStation.ItemConversion item. + + The Valheim CookingStation.ItemConversion + + + + Loads a single CookingConversionConfig from a JSON string + + JSON text + Loaded CookingConversionConfig + + + + Loads a list of CookingConversionConfigs from a JSON string + + JSON text + Loaded list of CookingConversionConfigs + + + + Used to add new ItemConversions to the Fermenter + + + + + The name of the station prefab this conversion is added to. Defaults to "fermenter". + + + + + The amount of items one conversion yields. Defaults to 4. + + + + + Turns the FermenterConversionConfig into a Valheim Fermenter.ItemConversion item. + + The Valheim Fermenter.ItemConversion + + + + Loads a single FermenterConversionConfig from a JSON string + + JSON text + Loaded FermenterConversionConfig + + + + Loads a list of FermenterConversionConfigs from a JSON string + + JSON text + Loaded list of FermenterConversionConfigs + + + + Used to add new IncineratorConversions to the Incinerator + + + + + The name of the station prefab this conversion is added to. Defaults to "incinerator". + + + + + List of requirements for this conversion. + + + + + The amount of items one conversion yields. Defaults to 1. + + + + + Priority of this conversion. + Lower prioritized conversions will be incinerated first when mulitple conversions requirements are met. + + + + + True: Requires only one of the list of ingredients to be able to produce the result. + False: All of the ingredients are required. + Defaults to false. + + + + + Turns the IncineratorConversionConfig into a Valheim Incinerator.IncineratorConversion item. + + The Valheim Incinerator.IncineratorConversion + + + + Loads a single IncineratorConversionConfig from a JSON string + + JSON text + Loaded IncineratorConversionConfig + + + + Loads a list of IncineratorConversionConfigs from a JSON string + + JSON text + Loaded list of IncineratorConversionConfigs + + + + Wrapper for the + + + + + Name of the item prefab of this incinerator requirement + + + + + Amount that is needed to fulfill the requirement. Defaults to 1. + + + + + Creates a Valheim Piece.Requirement from this config. + + + + + + Configuration class for adding custom items. Automatically creates a recipe for this item.
+ Use this in a constructor of and + Jötunn resolves the references to the game objects at runtime. +
+
+ + + The unique name for your item. May be tokenized. + + + + + The description of your item. May be tokenized. + + + + + The name of the item prefab. Is automatically set in . + + + + + The amount of that will be created when crafting this item. Defaults to 1. + + + + + Whether this item is craftable or not. Defaults to true. + + + + + The name of the piece table prefab this item uses to build pieces. + + + + + The name of the crafting station prefab where this recipe can be crafted.
+ Can be set to null to have the recipe be craftable without a crafting station. +
+
+ + + The name of the crafting station prefab where this item can be repaired.
+ Can be set to null to have the item be repairable without a crafting station. +
+
+ + + The minimum required level for the crafting station. Defaults to 1. + + + + + Icons for this item. If more than one icon is added, this item automatically has variants. + + + + + Texture holding the variants different styles. + + + + + Array of s for all crafting materials it takes to craft the recipe. + + + + + Apply this config's values to a GameObject's ItemDrop. + + + + + + Converts the RequirementConfigs to Valheim style Piece.Requirements + + The Valheim Piece.Requirement array + + + + Converts the ItemConfig to a Valheim style Recipe. + + The Valheim recipe + + + + Loads a single ItemConfig from a JSON string + + JSON text + Loaded ItemConfig + + + + Loads a list of ItemConfigs from a JSON string + + JSON text + Loaded list of ItemConfigs + + + + Configuration class for adding custom key hints. + + + + + Item for which the KeyHint should be displayed when equipped.
+ Must be the name of the prefab as registered in the . +
+
+ + + If not null or empty the KeyHint will also be bound to a specific + which must be selected for building. + + + + + Array of s used for this key hint. + + + + + Internal marker if any of the button configs backed by a BepInEx ConfigEntry did change + to regenerate the key hint object + + + + + + + + Kitbash configuration for a prefab + + + + + A list of KitbashSourceConfigs to apply to the prefab + + + + + Optional: The layer of the prefab, all Kitbashed parts will be set to this layer + + + + + Whether to fix references on the prefab + + + + + Configuration class for defining kitbash parts to add to a prefab with + + + + + An optional name of the pasted GameObject
+ Defaults to the source name +
+
+ + + Target parent of the pasted GameObject
+ Defaults to the root of the prefab +
+
+ + + Source prefab that contains the GameObject to copy + + + + + Location of the GameObject to copy from the source prefab + + + + + Position of the pasted GameObject
+ Defaults to +
+
+ + + Rotation of the pasted GameObject
+ Defaults to (no rotation) +
+
+ + + Scale of the pasted GameObject
+ Defaults to (no rescale) +
+
+ + + An optional list of Materials to set on the pasted GameObject
+ Defaults to the original materials +
+
+ + + + + + Configuration class for adding custom localizations. + + + + + Language of this localization. Defaults to English. + + + + + Dictionary of tokens and their respective translation in this configs language. + + + + + A new localization for a specific language. + + Name of the language + + + + Configuration class for adding custom locations.
+ Use this in a constructor of and +
+
+ + + Associated component + + + + + Biome to spawn in, multiple Biomes can be allowed with + + + + + BiomeArea to spawn in, defaults to Everything + + + + + Enable to place this kind of location first, and make it twice as likely that the objects will all be placed (random samples increase from 100,000 to 200,000) + + + + + Upper limit on how many of these locations will be placed in the world + + + + + Unused in Valheim, but available in case that changes in the future + + + + + Radius of the location. Terrain delta is calculated within this circle. + + + + + Attempt to place in the central zone first + + + + + Enable to check forest thresholds against the forest fractal. + + + + + Minimum value of the forest fractal: + 0 - 1: inside the forest + 1: forest edge + 1 - infinity: outside the forest + + + + + Maximum value of the forest fractal: + 0 - 1: inside the forest + 1: forest edge + 1 - infinity: outside the forest + + + + + Enable to make this location unique, it will not be replaced when locations change + + + + + Minimal altitude of the location + + + + + Maximum altitude of the location + + + + + Minimum distance from the center of the map of the location + + + + + Maximum distance from the center of the map of the location + + + + + Group of the location. Used with + + + + + Minimum distance to a similar location, either the same location or a location with the same + + + + + Minimum terrain delta (difference between min and max height) in the circle defined by + + + + + Maximum terrain delta (difference between min and max height) in the circle defined by + + + + + Rotate towards the average slope of the terrain in the circle defined by + + + + + Enable to + + + + + Radius of the interior attached to the location + + + + + Randomize location rotation when placing + + + + + Place at water level + + + + + Enable if the location places an icon to push the location icons + + + + + Always show the associated icon on the minimap + + + + + Enable to forbid Vegetation from spawning inside the circle defined by + + + + + Create a new + + + + + Create a copy of the + + ZoneLocation to copy + + + + Converts the LocationConfig to a Valheim style . + + The Valheim + + + + Configuration class for adding custom pieces.
+ Use this in a constructor of and + Jötunn resolves the references to the game objects at runtime. +
+
+ + + The name for your piece. May be tokenized. + + + + + The description of your piece. May be tokenized. + + + + + Whether this piece is buildable or not. Defaults to true. + + + + + Can this piece be built in dungeons? Defaults to false. + + + + + The name of the piece table where this piece will be added. + + + + + The name of the category this piece will appear on. If categories are disabled on the + target , this setting will be ignored.
+ If categories are enabled but the given category can't be found, a new + will be added to the table. +
+
+ + + The name of the crafting station prefab which needs to be in close proximity to build this piece. + + + + + The name of the crafting station prefab to which this piece will be an upgrade to. + + + + + Icon which is displayed in the crafting GUI. + + + + + Array of s for all crafting materials it takes to craft the recipe. + + + + + Apply this configs values to a piece GameObject. + + + + + + Converts the s to Valheim style array. + + The Valheim array + + + + Loads a single PieceConfig from a JSON string + + JSON text + Loaded PieceConfig + + + + Loads a list of PieceConfigs from a JSON string + + JSON text + Loaded list of PieceConfigs + + + + Configuration class for adding custom piece tables. + + + + + Indicator if the uses the vanilla categories. Defaults to true. + + + + + Indicator if the uses custom categories. Defaults to false. + + + + + Array of custom categories the uses. + Will be ignored when is false. + + + + + Indicator if the can also remove pieces. Defaults to true. + + + + + Creates the final categories array for this . + Adds vanilla categories when is true. + Adds custom categories when is true. + + Array of category strings. + + + + Apply this configs values to a piece table GameObject. + + + + + + Configuration class for adding custom recipes. + + + + + The unique name for your recipe. + + + + + The name of the item prefab that this recipe should create. + + + + + The amount of that will be created from this Recipe. Defaults to 1. + + + + + Whether this recipe is craftable or not. Defaults to true. + + + + + The name of the crafting station prefab where this recipe can be crafted. +
+ Can be set to null to have the recipe be craftable without a crafting station. +
+
+ + + The name of the crafting station prefab where this item can be repaired. +
+ Can be set to null to have the recipe be repairable without a crafting station. +
+
+ + + The minimum required level for the crafting station. Defaults to 1. + + + + + Array of s for all crafting materials it takes to craft the recipe. + + + + + Converts the RequirementConfigs to Valheim style Piece.Requirements + + The Valheim Piece.Requirement array + + + + Converts the RecipeConfig to a Valheim style Recipe. + + The Valheim recipe + + + + Loads a single RecipeConfig from a JSON string. + + JSON text + Loaded RecipeConfig + + + + Loads a list of RecipeConfigs from a JSON string. + + JSON text + Loaded list of RecipeConfigs + + + + Configuration class for requirements needed to craft items or build pieces. + + + + + Name of the item prefab of this requirement. + + + + + Amount that is needed to fulfill the requirement. Defaults to 1. + + + + + How much more of this requirement is needed per item level. Defaults to 0. + + + + + Determines if the used requirement will be rewarded again after dismanteling a piece. Defaults to false. + + + + + Creates a Valheim Piece.Requirement from this config. + + + + + + Configuration class for adding custom skills. + + + + + A SkillType used to distinguish this skill from others. This is a unique ID that Jotunn generates + based on the Identifier provided. + + + + + A unique string used to identify the skill, and used to generate the . + + Do not change the Identifier after you have released a mod using it. + If the Identifier changes, so will the skill's SkillType/UID, so + all users who have your mod will lose their save progress for the skill. + + + + + + The in-game name for your skill. + Can either be the name you want to see in-game, or a localization token. + + + + + The in-game description for your skill. + Can either be the description you want to see in-game, or a localization token. + + + + + The in-game icon for your skill. If null, will default to a "shield" icon. + + + + + The multiplier applied to all XP gained for this skill via . + If this is set to 0, your skill will be unable to gain XP at all. + + + + + The path to load an icon png/jpg file from. + If you wish to load from an asset bundle, use a $ to separate the path to the asset bundle, + and your sprite name in the asset bundle + + + This cannot be set if is also set. You can only set one of them at once. + + + + This sample shows how you would load a sprite from an asset bundle: + + IconPath = "MyMod/Assets/assetbundle$mysprite" + + + + + + + Converts the SkillConfig to a printable string. + + String representation of the SkillConfig + + + + Converts a Jotunn SkillConfig into a Valheim SkillDef. + + Valheim SkillDef representation of the SkillConfig + + + + Creates a SkillConfig object for mods that previously used SkillInjector. + + Unique identifier of the new skill, ex: "com.jotunn.testmod.testskill" + "id" from SkillInjector + "name" from SkillInjector + "description" from SkillInjector + "increment" from SkillInjector + "icon" from SkillInjector + New SkillConfig object that bridges SkillInjector to Jotunn without losing user progress + For any new skills please do not use this method! + + + + Loads a single SkillConfig from a JSON string. + + JSON text + Loaded SkillConfig + + + + Loads a list of SkillConfigs from a JSON string. + + JSON text + Loaded list of SkillConfigs + + + + Used to add new ItemConversions to the Smelter + + + + + The name of the station prefab this conversion is added to. Defaults to "smelter". + + + + + Turns the SmelterConversionConfig into a Valheim Smelter.ItemConversion item. + + The Valheim Smelter.ItemConversion + + + + Loads a single SmelterConversionConfig from a JSON string + + JSON text + Loaded SmelterConversionConfig + + + + Loads a list of SmelterConversionConfigs from a JSON string + + JSON text + Loaded list of SmelterConversionConfigs + + + + Configuration class for adding custom vegetation.
+ Use this in a constructor of and +
+
+ + + Biome to spawn in, can be bitwise or'ed toghether to allow multiple Biomes (Heightmap.Biome.Meadows | Heightmap.Biome.Forest) + + + + + BiomeArea to spawn in, defaults to Everything + + + + + Do a check before placing that there is nothing already from layers: "Default", "static_solid", "Default_small", "piece" + + + + + Unlike what the name suggets, Valheim will attempt 50 times the normal amount of placements, almost guaranteeing that everything will be placed + + + + + Minimum amount per zone + + + + + Values between 0 - 1 are used as a chance to place + Values above 1 are used as integer amount of maximum per zone + + + + + Minimal altitude of the vegetation + + + + + Maximum altitude of the vegetation + + + + + Minimum ocean depth + + + + + Maximum ocean depth + + + + + Minimum terrain delta (difference between min and max height) in the circle defined by + + + + + Maximum terrain delta (difference between min and max height) in the circle defined by + + + + + Minimum tilt in degrees + + + + + Maximum tilt in degrees + + + + + Enable to check forest thresholds against the forest fractal. + + + + + Minimum value of the forest fractal: + 0 - 1: inside the forest + 1: forest edge + 1 - infinity: outside the forest + + + + + Maximum value of the forest fractal: + 0 - 1: inside the forest + 1: forest edge + 1 - infinity: outside the forest + + + + + Size of the circle used to determine terrain delta + + + + + Minimum scale of placed instances + + + + + Maximum scale of place instances + + + + + Minimum amount in group + + + + + Maximum amount in group + + + + + Radius of group + + + + + Placement offset, use negatives to bury underground + + + + + Create a new + + + + + Create a copy of the + + ZoneVegetation to copy + + + + Pretend to be a debugBuild :) + + + + + A custom console command. + + + + + The command that the user will need to type in their console to run your command. + + + + + The help text that will be displayed to the user for your command when they type `help` into their console. + + + + + If true, this command will only work after `devcommands` is run in the console. + + + + + If true, this command will be allowed in networked play. + + + + + If true, and IsNetwork is true, this command will be allowed in networked play, but only for the server. + + + + + If true, this command will not be shown when the user types `help` into their console. + + + + + The function that will be called when the user runs your console command, with space-delimited arguments. + + The arguments the user types, with spaces being the delimiter. + + + + Override this function to return a list of strings that are valid options for your command + + List of valid command options + + + + + + + Base class for all custom entities + + + + + Reference to the which added this entity. + + + + + ctor automatically getting the SourceMod + + + + + ctor with manual assigned SourceMod + + Metadata of the mod adding this entity + + + + Main interface for adding custom items to the game.
+ All custom items have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The prefab for this custom item. + + + + + The component for this custom item as a shortcut. + + + + + The associated with this custom item. Is needed to craft + this item on a workbench or from the players crafting menu. + + + + + Indicator if references from s will be replaced at runtime. + + + + + Indicator if references from configs should get replaced + + + + + Custom item from a prefab.
+ Can fix references for s and the . +
+ The prefab for this custom item. + If true references for objects get resolved at runtime by Jötunn. +
+ + + Custom item from a prefab with a made from a .
+ Can fix references for s. +
+ The prefab for this custom item. + If true references for objects get resolved at runtime by Jötunn. + The item config for this custom item. +
+ + + Custom item created as an "empty" primitive.
+ At least the name and the Icon of the must be edited after creation. +
+ Name of the new prefab. Must be unique. + If true a ZNetView component will be added to the prefab for network sync. +
+ + + Custom item created as an "empty" primitive with a made from a . + + Name of the new prefab. Must be unique. + If true a ZNetView component will be added to the prefab for network sync. + The item config for this custom item. + + + + Custom item created as a copy of a vanilla Valheim prefab. + + The new name of the prefab after cloning. + The name of the base prefab the custom item is cloned from. + + + + Custom item created as a copy of a vanilla Valheim prefab with a made from a . + + The new name of the prefab after cloning. + The name of the base prefab the custom item is cloned from. + The item config for this custom item. + + + + Checks if a custom item is valid (i.e. has a prefab, an and an icon, if it should be craftable). + + true if all criteria is met + + + + Helper method to determine if a prefab with a given name is a custom item created with Jötunn. + + Name of the prefab to test. + true if the prefab is added as a custom item to the . + + + + + + + + + + + + + Main interface for adding custom item conversions to the game.
+ Supports and combines conversions for the cooking station, fermenter and smelter.
+ All custom item conversions have to be wrapped inside this class to add it to Jötunns . +
+
+ + + Type of the conversion component used in game. + + + + + Add a conversion to a station with the CookingStation component attached. + + + + + Add a conversion to a station with the Fermenter component attached. + + + + + Add a conversion to a station with the Smelter component attached. + + + + + Add a conversion to a station with the Incinerator component attached. + + + + + Type of the item conversion. Defines to which station the conversion is added. + + + + + Config of the item conversion. Depends on the of the conversion. + + + + + Indicator if the conversion needs fixing. + + + + + Actual ItemConversion type as . Needs to be cast according to . + + + + + Create a custom item conversion. Depending on the config class this custom + conversion represents one of the following item conversions:
+ + CookingStation.ItemConversion + Fermenter.ItemConversion + Smelter.ItemConversion + +
+ The item conversion config +
+ + + Checks if a custom item conversion is valid. + + true if all criteria is met + + + + + + + + + + + + Wrapper to hold each mod localization data. + + + Map that work as [language][token] = translation. + + + Default constuctor. + + + SourceMod hint constuctor. + Mod data in the shape of BepInPlugin class. + + + Retrieve list of languages that have been added. + + + Retrieve translations for given language. + Language of the translation you want to retrieve. + + + + Retrieve a translation from this custom localization or . + Searches with the user language with a fallback to English. + + Word to translate. + Translated word in player language or english as a fallback. + + + Checks if a translation exists for given language and token. + Language being checked. + Token being checked. + The translation. + + + Add a translation. + Token of the translation you want to add. + The translation. + + + Add a translation. + Language of the translation you want to add. + Token of the translation you want to add. + The translation. + + + Add a group of translations. + Language of the translation you want to add. + Token-Value dictionary. + + + Add a translation file via absolute path. + Absolute path to file. + Is the language file a json file. + + + Add a json language file (match crowdin format). + Language for the json file, for example, "English" + Entire file as string + + + Add a Unity style translation file. + Contents of the language file in string format. + + + Attempts to remove a given token from certain language. + Language from which to search the token. + Token to clear. + + + Attempts to remove a given token from default language. + Token to clear. + + + Attempts to remove given language. + Language to clear. + + + Clear all localization data. + + + + + + + Main interface for adding custom locations to the game.
+ All custom locations have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The exterior prefab for this custom location. + + + + + Associated component + + + + + Associated component + + + + + Name of this custom location + + + + + Custom location from a prefab with a attached.
+
+ The exterior prefab for this custom location. + The for this custom location. +
+ + + Custom location from a prefab with a attached.
+
+ The exterior prefab for this custom location. + The interior prefab for this custom location. + The for this custom location. +
+ + + Main interface for adding custom pieces to the game.
+ All custom pieces have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The prefab for this custom piece. + + + + + The component for this custom piece as a shortcut. + + + + + Name of the this custom piece belongs to. + + + + + Indicator if references from s will be replaced at runtime. + + + + + Indicator if references from configs should get replaced + + + + + Custom piece from a prefab.
+ Will be added to the provided by name.
+ Can fix references from s or not. +
+ The prefab for this custom piece. + + Name of the the custom piece should be added to. + Can by the "internal" or the s name (e.g. "_PieceTableHammer" or "Hammer") + + If true references for objects get resolved at runtime by Jötunn. +
+ + + Custom piece from a prefab with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ The prefab for this custom piece. + The for this custom piece. +
+ + + Custom piece from a prefab with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ The prefab for this custom piece. + If true references for objects get resolved at runtime by Jötunn. + The for this custom piece. +
+ + + Custom piece from a prefab loaded from an .
+ Will be added to the provided by name.
+ Can fix references from s or not. +
+ A preloaded + Name of the prefab in the bundle. + + Name of the the custom piece should be added to. + Can by the "internal" or the s name (e.g. "_PieceTableHammer" or "Hammer") + + If true references for objects get resolved at runtime by Jötunn. +
+ + + Custom piece from a prefab loaded from an with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ A preloaded + Name of the prefab in the bundle. + The for this custom piece. +
+ + + Custom piece from a prefab loaded from an with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ A preloaded + Name of the prefab in the bundle. + If true references for objects get resolved at runtime by Jötunn. + The for this custom piece. +
+ + + Custom piece created as an "empty" primitive.
+ Will be added to the provided by name. +
+ Name of the new prefab. Must be unique. + If true a ZNetView component will be added to the prefab for network sync. + + Name of the the custom piece should be added to. + Can by the "internal" or the s name (e.g. "_PieceTableHammer" or "Hammer") + +
+ + + Custom piece created as an "empty" primitive with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ Name of the new prefab. Must be unique. + If true a ZNetView component will be added to the prefab for network sync. + The for this custom piece. +
+ + + Custom piece created as a copy of a vanilla Valheim prefab.
+ Will be added to the provided by name. +
+ The new name of the prefab after cloning. + The name of the base prefab the custom item is cloned from. + + Name of the the custom piece should be added to. + Can by the "internal" or the s name (e.g. "_PieceTableHammer" or "Hammer") + +
+ + + Custom piece created as a copy of a vanilla Valheim prefab with a attached.
+ The members and references from the will be referenced by Jötunn at runtime. +
+ The new name of the prefab after cloning. + The name of the base prefab the custom item is cloned from. + The for this custom piece. +
+ + + Checks if a custom piece is valid (i.e. has a prefab, a target PieceTable is set, + has a component and that component has an icon). + + true if all criteria is met + + + + Helper method to determine if a prefab with a given name is a custom piece created with Jötunn. + + Name of the prefab to test. + true if the prefab is added as a custom piece to the . + + + + + + + + + + + + + Main interface for adding custom piece tables to the game.
+ All custom piece tables have to be wrapped inside this class + to add it to Jötunns .
+ Add strings to to use custom categories on your + piece table. All categories will be replaced so list vanilla categories, too. +
+
+ + + The prefab for this custom piece table. + + + + + The component for this custom piece table as a shortcut. + + + + + String array of categories used on the . + Will be ignored when m_useCategories is false.
+ All categories provided here will be used and displayed on the . +
+
+ + + Custom piece table from a prefab. + + The prefab for this custom piece table. + + + + Custom piece table from a prefab with a attached. + + The prefab for this custom piece table. + The for this custom piece table. + + + + "Empty" custom piece table with a attached. + + The name of the custom piece table. + The for this custom piece table. + + + + Checks if a custom piece table is valid (i.e. has a prefab and a PieceTable component). + + true if all criteria is met + + + + + + + + + + + + + Wrapper for custom added GameObjects holding the mod reference. + + + + + Original prefab + + + + + Indicator if references from s will be replaced at runtime. + + + + + Internal ctor with provided metadata.
+ Does not fix references. +
+ Prefab added + Metadata of the mod adding this prefab +
+ + + Custom prefab.
+ Can fix references for s. +
+ The prefab for this custom item. + If true references for objects get resolved at runtime by Jötunn. +
+ + + Checks if a custom item is valid (i.e. has a prefab, an and an icon, if it should be craftable). + + true if all criteria is met + + + + Helper method to determine if a prefab with a given name is a custom prefab created with Jötunn. + + Name of the prefab to test. + true if the prefab is added as a custom prefab to the . + + + + + + + Main interface for adding custom recipes to the game.
+ All custom recipes have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The for this custom recipe. + + + + + Indicator if references from s will be replaced at runtime. + + + + + Indicator if references from s will be replaced at runtime. + + + + + Custom recipe from a .
+ Can fix references for s and s or not. +
+ The for a custom item. + If true references for objects get resolved at runtime by Jötunn. + If true references for s get resolved at runtime by Jötunn. +
+ + + Custom recipe from a .
+ The is created automatically by Jötunn at runtime. +
+ The for a custom recipe. +
+ + + Checks if a custom status effect is valid (i.e. has a ). + + true if all criteria is met + + + + + + + + + + + + + Wrapper for Valheim's RPC calls implementing convenience delegate methods for client and server processing of packages.
+ Automatically compresses and slices big packages to fit into the Steam package limit.
+ All sending and processing of received packages is executed in Coroutines to ensure the game loop's execution. +
+
+ + + Name of the custom RPC as defined at instantiation + + + + + True, if this RPC is currently sending data + + + + + True, if this RPC is currently receiving data + + + + + True, if this RPC is currently processing received data. + This is always true while executing the registered delegates. + + + + + True, if this RPC is processing received data outside the current delegate call. + This should only be used in the registered delegate methods to determine + if this RPC is already processing another package. + + + + + Unique ID of this RPC to prevent name clashes between mods + + + + + Delegate called when a package is received on the server + + + + + Delegate called when a package is received on the client + + + + + Internal constructor only, CustomRPCs are instantiated via + + Reference to the which created this RPC. + + + + + + + Initiates a RPC exchange with the server by sending an empty package. + + + + + Send a package to a single target. Compresses and fragments the package if necessary. + + + + + + + Send a package to a list of peers. Compresses and fragments the package if necessary. + + + + + + + Coroutine to send a package to a single target. Compresses and fragments the package if necessary. + + + + + + + + Coroutine to send a package to a list of peers. Compresses and fragments the package if necessary. + + + + + + + + Coroutine to send a package to an actual peer. + + + + + + + + Receive and handle an incoming package + + + + + + + Main interface for adding custom status effects to the game.
+ All custom status effects have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The for this custom status effect. + + + + + Indicator if references from s will be replaced at runtime. + + + + + Custom status effect from a .
+ Can fix references for s. +
+ A preloaded + If true references for objects get resolved at runtime by Jötunn. +
+ + + Checks if a custom status effect is valid (i.e. has a ). + + true if all criteria is met + + + + + + + + + + + + + Main interface for adding custom vegetation to the game.
+ All custom vegetation have to be wrapped inside this class to add it to Jötunns . +
+
+ + + The prefab for this custom vegetation. + + + + + Associated component + + + + + Name of this custom vegetation + + + + + Custom vegetation from a prefab.
+
+ The prefab for this custom vegetation. + The vegetation config for this custom vegation. +
+ + + Container class for Kitbashed prefabs, returned by + + + + + Callback that is called when Kitbashes are applied + + + + + The Kitbashed prefab + + + + + Config for the KitbashObject + + + + + + + + Helper class for creating Mocks of a given vanilla Component. + + Type of the mocked + + + + Create a new Mock of type T : Component + + Name of the original component + Mocked + + + + Helper class for creating Mocks of item/piece requirements. + + + + + Creates a mocked Piece.Requirement + + Prefab name + Amount + Whether the resource is returned after deconstruction + + + + + Creates a mocked Piece.Requirement array + + List of prefab names and amounts + Whether the resources are returned after deconstruction + + + + + Extends with convenience functions. + + + + + Check, if this config entry is "visible" + + + + + + + Check, if this config entry is "syncable" + + + + + + + Check, if this config entry is "writable" + + + + + + + Get the local value of an admin config + + + + + + + Set the local value of an admin config + + + + + + + + Check, if button is bound to a configuration entry + + + + + + + + Get bound button's name + + + + + + + + Get bound button config + + + + + + + + Helper class for C# Events. + + + + + try/catch the delegate chain so that it doesnt break on the first failing Delegate. + + + + + + try/catch the delegate chain so that it doesnt break on the first failing Delegate. + + + + + + + + try/catch the delegate chain so that it doesnt break on the first failing Delegate. + + + + + + + + + + try/catch the delegate chain so that it doesnt break on the first failing Delegate. + + + + + + + + + Extends GameObject with a shortcut for the Unity bool operator override. + + + + + Facilitates use of null propagation operator for unity GameObjects by respecting op_equality. + + this + Returns null when GameObject.op_equality returns false. + + + + Facilitates use of null propagation operator for unity MonBehaviours by respecting op_equality. + + Any type that inherits MonoBehaviour + this + Returns null when MonoBehaviours.op_equality returns false. + + + + Returns the component of Type type. If one doesn't already exist on the GameObject it will be added. + + Source: https://wiki.unity3d.com/index.php/GetOrAddComponent + The type of Component to return. + The GameObject this Component is attached to. + Component + + + + Adds a new copy of the provided component to a gameObject + + + + + + + + + Use only, if you know what you do. + There are no checks if a component exists. + + + + + Extends GameObject with a check if the GameObject is valid + + + + + Check for validity + + + + + + + Extends ItemDrop with a TokenName + + + + + m_itemData.m_shared.m_name + + + + + + + Extends ItemData with a TokenName. + + + + + m_shared.m_name + + + + + + + Extends StatusEffect with a TokenName and a check if the StatusEffect is valid so it can be added to the game. + + + + + Check for validity + + + + + + + Extends Piece with a TokenName + + + + + m_name + + + + + + + Extends StatusEffect with a TokenName and a check if the StatusEffect is valid so it can be added to the game. + + + + + m_name + + + + + + + Check for validity + + + + + + + Extends prefab GameObjects with functionality related to the mocking system. + + + + + Will attempt to fix every field that are mocks gameObjects / Components from the given object. + + + + + + Resolves all references for mocks in this GameObject's components recursively + + + + + + Resolves all references for mocks in this GameObject recursively. + Can additionally traverse the transforms hierarchy to fix child GameObjects recursively. + + This GameObject + Traverse all child transforms + + + + Clones all fields from this GameObject to objectToClone. + + + + + + + Helpful Unity Object extensions. + + + + + Extends ZNet with a clear diversion between local, client and server instances. + + + + + Possible states of the game regarding to networking. + + + + + A local game instance playing on a local world. + + + + + A local game instance playing on a dedicated server. + + + + + A dedicated server instance. + + + + + Returns true if the game was started locally and a local world was started. + + + + + + + Returns true if the game was started locally and is connected to a server. + + + + + + + Returns true if the game was started as a dedicated server. + + + + + + + Determine the current game instance type regarding to networking. + + + + + + + Determine if a peer uid is in the admin list on the current + + + + + + + + An ingame GUI for BepInEx config files + + + + + Name of the menu entry + + + + + Cached transform of the vanilla menu list + + + + + Cached prefab of the vanilla Settings window + + + + + Our own Settings window + + + + + Our own mod config tabs + + + + + Hook into settings setup + + + + + After SetupGui + + + + + After first menu start + + + + + Create our own menu list entry when mod config is available + + + + + + + Create custom configuration window + + + + + Get all config entries of a module + + + + + + + Save our settings + + + + + Create a text input field (used for string, int, float) + + parent transform + Label text + Color of the label + Description text + Color of the description text + Width + + + + + Create a text input field and a ColorPicker button (used for Color) + + parent transform + Label text + Color of the label + Description text + Color of the description text + Width + + + + + Create a toggle element + + parent transform + label text + Color of the label + Description text + Color of the description text + width + + + + + Create a keybinding element + + parent transform + label text + description text + ´buttonName + width + + + + + Create a KeyboardShortcut binding element + + parent transform + label text + description text + ´buttonName + width + + + + + Generic abstract version of the config binding class + + + + + + Boolean Binding + + + + + Integer binding + + + + + Float binding + + + + + Double binding + + + + + KeyCode binding + + + + + KeyboardShortcut binding + + + + + GamepadButton binding + + + + + String binding + + + + + Custom MonoBehaviour for the ColorPicker + + + + + Event that gets called by the ColorPicker + + received Color + + + + Singeleton instance + + + + + True when the ColorPicker is closed + + + + + OnColorChanged event + + + + + OnColorSelected event + + + + + Color before editing + + + + + Current Color + + + + + UseAlpha bool + + + + + Interact bool + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Component ref + + + + + Creates a new Colorpicker + + Color before editing + Display message + Event that gets called when the color gets modified + Event that gets called when one of the buttons done or cancel get pressed + When set to false the colors used don't have an alpha channel + + False if the instance is already running + + + + + Called when color is modified, to update other UI components + + + + + + Used by EventTrigger to calculate the chosen value in color box + + + + + Gets main Slider value + + + + + + Gets r Slider value + + + + + + Gets r InputField value + + + + + + Gets g Slider value + + + + + + Gets g InputField value + + + + + + Gets b Slider value + + + + + + Gets b InputField value + + + + + + Gets a Slider value + + + + + + Gets a InputField value + + + + + + Gets hexa InputField value + + + + + + Cancel button call + + + + + Manually cancel the ColorPicker and recover the default value + + + + + Done button call + + + + + Manually close the ColorPicker and apply the selected color + + + + + HSV helper class + + + + + Simple dragging + + + + + Add this MonoBehaviour to a GameObject + + + + + + BeginDrag event trigger + + + + + Drag event trigger + + + + + Custom MonoBehaviour for the GradientPicker + + + + + Event that gets called by the GradientPicker. + + received Gradient + + + + Singeleton instance + + + + + True when the GradientPicker is closed + + + + + OnGradientChanged Event + + + + + OnGradientSelected Event + + + + + Gradient before editing + + + + + Current Gradient + + + + + Key template + + + + + Interact bool + + + + + Creates a new GradiantPicker + + Color before editing + Display message + Event that gets called when the gradient gets modified + Event that gets called when one of the buttons done or cancel gets pressed + False if the instance is already running + + + + Setup new GradientPicker + + + + + Creates a ColorKey UI object + + + + + + Checks if new ColorKey should be created + + + + + + Creates a AlphaKey UI object + + + + + + Checks if new AlphaKey should be created + + + + + + Accessed by alpha Slider + + + + + + Accessed by alpha InputField + + + + + + Checks if Key can be deleted + + + + + + Changes Selected Key + + + + + Accessed by position Slider + + + + + + Accessed by position InputField + + + + + + Choose color button call + + + + + Cancel button call + + + + + Manually cancel the GradientPicker and recovers the default value + + + + + Done button call + + + + + Manually close the GradientPicker and apply the selected color + + + + + The base class for all the library's various Managers + + + + + Initialize manager class after all manager scripts have been added to the root game object + + + + + A namespace wide Logger class, which automatically creates a ManualLogSource + for every Class from which it is being called. + + + + + Add DateTime to the log output + + + + + Singleton init + + + + + Remove and clear all Logger instances + + + + + Get or create a with the callers + + A BepInEx + + + + Logs a message with level. + + Data to log + + + + Logs a message with level. + + Data to log + + + + Logs a message with level. + + Data to log + + + + Logs a message with level. + + Data to log + + + + Logs a message with level. + + Data to log + + + + Logs a message with level. + + Data to log + + + + Main class implementing BaseUnityPlugin. + + + + + The current version of the Jotunn library. + + + + + The name of the library. + + + + + The BepInEx plugin Mod GUID being used (com.jotunn.jotunn). + + + + + Invoke patch initialization methods for all loaded mods. + + + + + Manager for handling custom console and chat commands. + + + + + The singleton instance of this manager. + + + + + Internal Action delegate to add custom entities into vanilla command's option list + + + + + A list of all the custom console commands that have been added to the game through this manager, + either by Jotunn or by mods using Jotunn. + + + + + Initialize console commands that come with Jotunn. + + + + + Adds a new console command to Valheim. + + The console command to add + + + + Fire for any ConsoleCommand when its tabOptions member + is first populated to add Jötunn entities to the option list + + + + + + + + Manager for handling anything GUI related. Provides Valheim style + GUI elements as well as an anchor for custom GUI prefabs. + + + + + Singleton instance + + + + + Event that gets fired every time the Unity scene changed and a new PixelFix + object was created. Subscribe to this event to create your custom GUI objects + and add them as a child to the . + + + + + GUI container with automatic scaling for high res displays. + Gets rebuild at every scene change so make sure to add your custom + GUI prefabs again on each scene change. + + + + + Event that gets fired every time the Unity scene changed and new CustomGUI + objects were created. Subscribe to this event to create your custom GUI objects + and add them as a child to either or . + + + + + GUI container in front of Valheim's GUI elements with automatic scaling for + high res displays and pixel correction. + Gets rebuild at every scene change so make sure to add your custom + GUI prefabs again on each scene change. + + + + + GUI container behind Valheim's GUI elements with automatic scaling for + high res displays and pixel correction. + Gets rebuild at every scene change so make sure to add your custom + GUI prefabs again on each scene change. + + + + + Unity layer constant for UI objects. + + + + + The default Valheim orange color. + + + + + Scrollbar handle color block in default Valheim orange. + + + + + Toggle color block in Valheim style. + + + + + Button color block in Valheim style + + + + + Valheim standard font normal faced. + + + + + Valheims standard font bold faced. + + + + + with default Valheim assets. + + + + + SpriteAtlas holding the references to the sprites used in the helper methods. + + + + + SpriteAtlas holding the references to the sprites used in the helper methods. + + + + + Indicates if the PixelFix must be created for the start or main scene. + + + + + Cache headless state + + + + + Detect headless mode (aka dedicated server) + + + + + + Global indicator if the input is currently blocked by the GUIManager. + + + + + Counter to track multiple block requests. + + + + + Block all input except GUI + + Indicator if the input should be blocked or released + + + + Enable the InputBlock + + + + + Reset the InputBlock to its initial state (disabled) + + + + + Initialize the manager + + + + + Load GUI assets on first start + + + + + + + Create GameObjects for mods to append their custom GUI to + + + + + + Add a to the manager.
+ Checks if the custom key hint is unique (i.e. the first one registered for an item).
+ Custom status effects are displayed in the game instead of the default + KeyHints for equipped tools or weapons they are registered for. +
+ The custom key hint config to add. + true if the custom key hint config was added to the manager. +
+ + + Removes a from the game. + + The custom key hint config to add. + + + + Get a sprite by name. + + The sprite name + The sprite with given name + + + + Creates and displays a Valheim style ColorPicker + + Min anchor on first instantiation + Max anchor on first instantiation + Position on first instantiation + Color before editing + Display message + Event that gets called when the color gets modified + Event that gets called when one of the buttons done or cancel get pressed + When set to false the colors used don't have an alpha channel + + + + + Creates and displays a Valheim style GradientPicker + + Min anchor on first instantiation + Max anchor on first instantiation + Position on first instantiation + Color before editing + Display message + Event that gets called when the gradient gets modified + Event that gets called when one of the buttons done or cancel gets pressed + + + + + Creates a Valheim style woodpanel which is draggable per default + + Parent + Minimal anchor + Maximal anchor + Anchored position + Optional width + Optional height + A as a Valheim style woodpanel + + + + Creates a Valheim style woodpanel, can optionally be draggable + + Parent + Minimal anchor + Maximal anchor + Anchored position + Optional width + Optional height + Optional flag if the panel should be draggable (default true) + A as a Valheim style woodpanel + + + + Create a complete scroll view + + parent transform + show horizontal scrollbar + show vertical scrollbar + size of the handle + + Colorblock for the handle + Background color for the sliding area + rect width + rect height + + + + + Create a with a Text (and optional Outline and ContentSizeFitter) component + + Text to show + Parent transform + Anchor min + Anchor max + Anchored position + Font + Font size + Font color + Add outline component + Outline color + Width + Height + Add ContentSizeFitter + A text + + + + Create a new button (Valheim style). + + Text to display on the button + Parent transform + Min anchor + Max anchor + Position + Set width if > 0 + Set height if > 0 + Button GameObject in Valheim style + + + + Create a new InputField (Valheim style). + + Parent transform + Min anchor + Max anchor + Position + Content type for the input field + Text to display as a placeholder (can be null) + Optional font size, defaults to 16 + Set width if > 0 + Set height if > 0 + Input field GameObject in Valheim style + + + + Create toggle field + + Parent transform + Set width + Set height + + + + + Create dropdown field + + Parent transform + Min anchor + Max anchor + Position + Optional font size, defaults to 16 + Set width if > 0 + Set height if > 0 + + + + + Create key binding field + + + + + + + + + + Apply Valheim style to a woodpanel. + + + + + + Apply Valheim style to a Component + + Target component + Own font or GUIManager.Instance.AveriaSerifBold/GUIManager.Instance.AveriaSerif + Custom color or GUIManager.Instance.ValheimOrange + creates an component when true + Optional font size, defaults to 16 + + + + Apply Valheim style to a Component. + Uses GUIManager.Instance.AveriaSerifBold by default + + Target component + Custom color or GUIManager.Instance.ValheimOrange + creates an component when true + Optional font size, defaults to 16 + + + + Apply Valheim style to a Component. + Uses GUIManager.Instance.AveriaSerifBold, Color.white and creates an outline by default + + Target component + Optional font size, defaults to 16 + + + + Apply valheim style to a Component + + Component to apply the style to + Optional font size, defaults to 16 + + + + Apply Valheim style to an Component. + + Component to apply the style to + + + + Apply Valheim style to an Component. + + Component to apply the style to + Optional font size, defaults to 16 + + + + Apply Valheim style to a component. + + Component to apply the style to + + + + Apply Valheim style to a component. + + Component to apply the style to + Optional font size, defaults to 16 + + + + Apply Valheim style to a component. + + Component to apply the style to + + + + Apply Valheim style to a component. + + Component to apply the style to + + + + Apply Valheim style to a component. + + + + + + Manager for handling custom inputs registered by mods. + + + + + Abstraction for gamepad buttons and axes used as inputs + + + + + No gamepad button, internally treated as null + + + + + Up direction on the directional pad + + + + + Down direction on the directional pad + + + + + Left direction on the directional pad + + + + + Right direction on the directional pad + + + + + Southern button on the gamepad (A on XBox-like) + + + + + Eastern button on the gamepad (B on XBox-like) + + + + + Western button on the gamepad (X on XBox-like) + + + + + Nothern button on the gamepad (Y on XBox-like) + + + + + Left shoulder button + + + + + Right shoulder button + + + + + Left trigger + + + + + Right trigger + + + + + Left special button (Back on XBox-like) + + + + + Right special button (Menu on XBox-like) + + + + + Left Joystick press + + + + + Right Joystick press + + + + + Singleton instance + + + + + Initialize the manager + + + + + Add a Button to Valheim + + Mod GUID + Button config + + + + Manager for handling all custom data added to the game related to items. + + + + + The singleton instance of this manager. + + + + + Event that gets fired after the vanilla items are in memory and available for cloning. + Your code will execute every time a new ObjectDB is copied (on every menu start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Internal event that gets fired after did run. + On this point all mods should have their items and pieces registered with the managers. + + + + + Event that gets fired after all items were added to the ObjectDB on the FejdStartup screen. + Your code will execute every time a new ObjectDB is copied (on every menu start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Event that gets fired after all items were added to the ObjectDB. + Your code will execute every time a new ObjectDB is created (on every game start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Registers all hooks. + + + + + Add a to the game.
+ Checks if the custom item is valid and unique and adds it to the list of custom items.
+ Also adds the prefab of the custom item to the .
+ Custom items are added to the current on every . +
+ The custom item to add. + true if the custom item was added to the manager. +
+ + + Get a custom item by its name. + + Name of the item to search. + + + + + Remove a custom item by its name. Removes the custom recipe, too. + + Name of the item to remove. + + + + Remove a custom item by its ref. Removes the custom recipe, too. + + to remove. + + + + Add a to the game.
+ Checks if the custom recipe is unique and adds it to the list of custom recipes.
+ Custom recipes are added to the current on every . +
+ The custom recipe to add. + true if the custom recipe was added to the manager. +
+ + + Adds recipes defined in a JSON file at given path, relative to BepInEx/plugins + + JSON file path, relative to BepInEx/plugins folder + + + + Get a custom recipe by its name. + + Name of the recipe to search. + + + + + Remove a custom recipe by its name. Removes it from the manager and the , if instantiated. + + Name of the recipe to remove. + + + + Remove a custom recipe by its ref. Removes it from the manager and the , if instantiated. + + to remove. + + + + Add a to the game.
+ Checks if the custom status effect is unique and adds it to the list of custom status effects.
+ Custom status effects are added to the current on every . +
+ The custom status effect to add. + true if the custom status effect was added to the manager. +
+ + + Add a new item conversion + + Item conversion details + Whether the addition was successful or not + + + + Register all custom items added to the manager to the given + + + + + + Register a single item in the current ObjectDB. + Also adds the prefab to the and if necessary.
+ No mock references are fixed. +
+ with an component to add to the +
+ + + Internal method for adding a prefab to a specific ObjectDB. + + the prefab should be added to + with an component to add + + + + Register the custom recipes added to the manager to the given + + + + + + Register the custom status effects added to the manager to the given + + + + + + Register the custom item conversions added to the manager + + + + + Prefix on to add custom items to FejdStartup screen (aka main menu) + + + + + Safely invoke the event + + + + + Safely invoke the event + + + + + Safely invoke the event late in the detour chain + + + + + + + + Hook on to register all custom entities from this manager to the . + + + + + + + Safely invoke the event + + + + + + + Hook on to refresh recipes for the custom items. + + + + + + + Manager for handling custom key hints + + + + + Singleton instance + + + + + Internal Dictionary holding the references to the custom key hints added to the manager + + + + + Internal Dictionary holding the references to the key hint GameObjects created per KeyHintConfig + + + + + Reference to the current "KeyHints" instance + + + + + Reference to the games "KeyHint" GameObjects RectTransform + + + + + Base GameObjects of vanilla key hint parts + + + + + Initialize the manager + + + + + Add a to the manager.
+ Checks if the custom key hint is unique (i.e. the first one registered for an item).
+ Custom key hints are displayed in the game instead of the default + KeyHints for equipped tools or weapons they are registered for. +
+ The custom key hint config to add. + true if the custom key hint config was added to the manager. +
+ + + Removes a from the game. + + The custom key hint config to add. + + + + Instantiate base GameObjects from vanilla KeyHints to use in our custom key hints + + + + + Extract base key hint elements and create key hint objects. + + + + + Copy vanilla BuildHints object and create a custom one from a KeyHintConfig. + + + + + + Hook on to show custom key hints instead of the vanilla ones. + + + + + + + Manager for handling Kitbashed objects + + + + + The singleton instance of this manager. + + + + + Internal list of objects to which Kitbashing should be applied. + + + + + Registers all hooks. + + + + + Register a prefab with a KitbashConfig to be applied when the vanilla prefabs are available + + Prefab to add kitbashed parts to + KitbashConfig to apply to the prefab + The KitbashObject container for this prefab + + + + Apply all Kitbashs to the objects registered in the manager. + + + + + Apply kitbash to a single object. + + + + + + + Manager for handling localizations for all custom content added to the game. + + + + + List where all data is collected. + + + + + Your token must start with this character. + + + + + Default language of the game. + + + + + Name of the folder that will hold the custom .json translations files. + + + + + Name of the community translation files that will be the first custom languages files loaded before any others. + + + + + String of chars not allowed in a token string. + + + + + Array of chars not allowed in a token string. + + + + + The singleton instance of this manager. + + + + + Localizations for internal use. + + + + + Event that gets fired after all custom localization has been added to the game. + Use this event if you need to translate strings using the vanilla class. + Your code will execute every time the localization gets reset (on every menu start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Call into unity's DoQuoteLineSplit. + + + + + Initialize localization manager. + + + + + Add your mod's custom localization. Only one can be added per mod. + + The localization to add. + true if the custom localization was added to the manager. + + + + Get the CustomLocalization for your mod. + Creates a new if no localization was added before. + + Existing or newly created . + + + + Get the CustomLocalization for a given mod. + Creates a new if no localization was added before. + + Existing or newly created . + + + + Retrieve a translation if it's found in any CustomLocalization or . + + Word to translate. + Translated word in player language or english as a fallback. + + + + Registers a new Localization for a language. + + Wrapper which contains a language and a Token-Value dictionary. + + + + Registers a new Localization for a language. + + The language being added. + Token-Value dictionary. + + + + Add a token and its value to the "English" language. + + Token + Translation. + Replace the token if it already exists + + + + Add a token and its value to the specified language (default to "English"). + + Token + Translation. + Language ID for this token. + Replace the token if it already exists + + + + Add a file via absolute path. + + Absolute path to file. + Is the language file a json file. + + + + Add a json language file (match crowdin format). + + Language for the json file, for example, "English" + Entire file as string + + + + Add a language file that matches Valheim's language format. + + Entire file as string + + + + Manager for adding custom Map Overlays to the game. + + + + + The singleton instance of this manager. + + + + + Event that gets fired once the Map for a World has started and Mods can begin to draw. + + + + + Event that gets fired once data for a specific Map for a world has been loaded. Eg, Pins are available after this has fired. + + + + + Object for modders to use to access and modify their Overlay. + Modders should modify the Image's shader's texture directly. + MapName and TextureSize should not be modified. + + + + + Internal Helper GameObject to hold the Image component + + + + + Unique ID per overlay + + + + + Initial texture size to calculate the relative drawing position + + + + + Image component holding the overlay texture data + + + + + Creates the Overlays and registers hooks. + + + + + Create a new mapoverlay with a default overlay name + + Reference to MapOverlay for modder to edit + + + + Create a new mapoverlay with a custom overlay name + + Custom name for the MapOverlay + Reference to MapOverlay for modder to edit + + + + If a mod already has an instance of MapOverlay ready, they can simply call this function to register to the MapOverlayManager. + This Manager will then ensure the image is updated. + + The MapOverlay to be registered + + + + Causes MapManager to stop updating the MapOverlay object and removes this Manager's reference to that overlay. + A mod could still hold references and keep the object alive. + + The name of the MapOverlay to be removed + True if removal was successful. False if there was an error removing the object from the internal dict. + + + + Returns a reference to a currently registered MapOverlay + + The name of the MapOverlay to retrieve + The MapOverlay if it exists. + + + + Helper function to set pixels on the overlay image completely transparent if there is map fog over that pixel. + The end effect is to "put fog over top of the overlay". + + The overlay to place fog on top of + + + + Input a World Coordinate and the size of the overlay texture to retrieve the translated overlay coordinates. + + World Coordinates + Size of the image from your MapOverlay + The 2D coordinate space on the MapOverlay + + + + Input a MapOverlay Coordinate and the size of the overlay texture to retrieve the translated World coordinates. + + The 2D Overlay coordinate + The size of the Overlay + The 3D World coordinate that corresponds to the input Vector + + + + All map overlays need to be updated in this way to keep them scaled and positioned properly when the minimap itself is moved / scaled. + This function is public as it needs to be called by MapManagerHelper. + Automatically scales and positions based on whether the large or small map is active. + + + + + Helper function to set default properties of a MapOverlay. + Create a new image of our custom default size and set its anchor min/max to the bottom left. + Then add a reference of the mapoverlay to our dict so we can update it later. + + The overlay to be added + + + + Safely invoke OnVanillaMapAvailable event. + + + + + Safely invoke InvokeOnVanillaMapDataLoaded event. + + + + + Monomod hook into the Minimap Awake method. MapManager adds its helper component after the Minimap does its thing. + + + + + Helper class that gets attached to the Minimap object on Minimap.Awake() + Used to give MapManager Update() functionality + + + + + Handles all logic to do with managing mocked prefabs added into the game. + + + + + The singleton instance of this manager. + + + + + Regex to identify multiple instances of mock objects from Unity + + + + + Legacy ValheimLib prefix used by the Mock System to recognize Mock gameObject that must be replaced at some point. + + + + + Prefix used by the Mock System to recognize Mock gameObject that must be replaced at some point. + + + + + Internal container for mocked prefabs + + + + + Creates the container and registers all hooks + + + + + Will try to find the real vanilla prefab from the given mock + + + + the real prefab + + + + Will try to find the real vanilla prefab from the given mock + + + + the real prefab + + + + Manager handling all network related code + + + + + Singleton instance + + + + + Delegate for receiving ZPackages. + Gets called inside a . + + Sender ID of the package + Package sent + + + + + Internal list of registered RPCs + + + + + Manager's main init + + + + + Get a for your mod + + Unique name for your RPC + Delegate which gets called on client instances when packages are received + Delegate which gets called on server instances when packages are received + Existing or newly created + + + + Get the for a given mod. + + Reference to the which added this entity + Unique name for your RPC + Delegate which gets called on client instances when packages are received + Delegate which gets called on server instances when packages are received + Existing or newly created . + + + + Register all custom RPCs as ZRoutedRPCs + + + + + Manager for handling custom pieces added to the game. + + + + + The singleton instance of this manager. + + + + + Event that gets fired after all pieces were added to their respective PieceTables. + Your code will execute every time a new ObjectDB is created (on every game start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Creates the piece table container and registers all hooks. + + + + + Add a to the game.
+ Checks if the custom piece table is valid and unique and adds it to the list of custom piece tables. +
+ The custom piece table to add. + true if the custom piece table was added to the manager. +
+ + + Add a new from .
+ Creates a and adds it to the manager. +
+ The to add. +
+ + + Add a new from string.
+ Creates a and adds it to the manager. +
+ Name of the new piece table. +
+ + + Get a by name.

+ Search hierarchy:
+ + PieceTable with the exact name (e.g. "_HammerPieceTable") + PieceTable via "item" name (e.g. "Hammer") + +
+ Prefab or item name of the PieceTable + component +
+ + + Add a new by name. A new category + gets assigned a random integer for internal use. If you pass a vanilla category + the actual integer value of the enum is returned. + + Prefab or item name of the PieceTable. + Name of the category. + int value of the vanilla or custom category + + + + Get a list of all custom piece category names + + + + + + Add a to the game.
+ Checks if the custom piece is valid and unique and adds it to the list of custom pieces.
+ Custom pieces are added to their respective s after . +
+ The custom piece to add. + true if the custom piece was added to the manager. +
+ + + Get a custom piece by its name. + + Name of the piece to search. + + + + + Remove a custom piece by its name. + + Name of the piece to remove. + + + + Remove a custom piece by its ref. + + to remove. + + + + Loop all items in the game and get all PieceTables used (vanilla and custom ones). + + + + + Create piece categories per table if custom categories were added. + + + + + Create tabs for the ingame GUI for every piece table category. + Only executes when custom piece table catego-ries were added. + + + + + Reorder piece table tabs if the table if opened currently + + + + + Hook for piece table toggle. Only active when custom categories were added. + + + + + Registers all custom pieces to their respective piece tables. + Removes erroneous ones from the manager. + + + + + Register a single piece prefab into a piece table by name.
+ Also adds the prefab to the and if necessary.
+ Custom categories can be referenced if they have been added to the manager before.
+ No mock references are fixed. +
+ with a component to add to the table + Prefab or item name of the PieceTable + Optional category string, does not create new custom categories +
+ + + Hook on to refresh recipes for the custom items. + + + + + + + Manager for handling custom prefabs added to the game. + + + + + The singleton instance of this manager. + + + + + Event that gets fired after the vanilla prefabs are in memory and available for cloning. + Your code will execute every time before a new is copied (on every menu start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Event that gets fired after registering all custom prefabs to . + Your code will execute every time a new ZNetScene is created (on every game start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Container for custom prefabs in the DontDestroyOnLoad scene. + + + + + Dictionary of all added custom prefabs by name hash. + + + + + Creates the prefab container and registers all hooks. + + + + + Add a custom prefab to the manager with known source mod metadata. + + Prefab to add + Metadata of the mod adding this prefab + + + + Add a custom prefab to the manager.
+ Checks if a prefab with the same name is already added.
+ Added prefabs get registered to the on . +
+ Prefab to add +
+ + + Add a custom prefab to the manager.
+ Checks if a prefab with the same name is already added.
+ Added prefabs get registered to the on . +
+ Prefab to add +
+ + + Create a new prefab from an empty primitive. + + The name of the new GameObject + + When true a ZNetView component is added to the new GameObject for ZDO generation and networking. Default: true + + The newly created empty prefab + + + + Create a copy of a given prefab without modifying the original. + + Name of the new prefab. + Name of the vanilla prefab to copy from. + Newly created prefab object + + + + Create a copy of a given prefab without modifying the original. + + Name of the new prefab. + Prefab instance to copy. + Newly created prefab object + + + + Get a prefab by its name.

+ Search hierarchy: + + Custom prefab with the exact name + Vanilla prefab with the exact name from if already instantiated + Vanilla prefab from the prefab cache + +
+ Name of the prefab to search for. + The existing prefab, or null if none exists with given name +
+ + + Remove a custom prefab from the manager. + + Name of the prefab to remove + + + + Destroy a custom prefab.
+ Removes it from the manager and if already instantiated also from the . +
+ The name of the prefab to destroy +
+ + + Register all custom prefabs to m_prefabs/m_namedPrefabs in . + + + + + Register a single prefab to the current .
+ Checks for existence of the object via GetStableHashCode() and adds the prefab if it is not already added. +
+ +
+ + + Safely invoke the event + + + + + + The global cache of prefabs per scene. + + + + + Get an instance of an Unity Object from the current scene with the given name. + + to search for. + Name of the actual object to search for. + + + + + Get an instance of an Unity Object from the current scene by name. + + + + + + + + Get all instances of an Unity Object from the current scene by type. + + to search for. + + + + + Manager for rendering Sprites of GameObjects + + + + + Rotation of the prefab that will result in an isometric view + + + + + Singleton instance + + + + + Unused Layer in Unity + + + + + Initialize the manager + + + + + Create a of the + + GameObject to render + Callback for the generated + If this is called on a headless server or when there is no active visual Mesh attached to the target, this method invokes the callback with null immediately and returns false. + + + + Enqueue a render of the + + + Callback for the generated + If this is called on a headless server or when there is no active visual Mesh attached to the target, this method invokes the callback with null immediately and returns false. + + + + Queues a new prefab to be rendered. The resulting will be ready at the next frame. + If there is no active visual Mesh attached to the target, this method invokes the callback with null immediately. + + Object to be rendered. A copy of the provided GameObject will be created for rendering + Action that gets called when the rendering is complete + Width of the resulting + Height of the resulting + Only true if the target was queued for rendering + + + + Create a of the + + Can be a prefab or any existing GameObject in the world + If this is called on a headless server or when there is no active visual Mesh attached to the target, this method returns null. + + + + Create a of the + + Can be a prefab or any existing GameObject in the world + Rotation while rendering of the GameObject. See RenderManager.IsometricRotation for example/> + If this is called on a headless server or when there is no active visual Mesh attached to the target, this method returns null. + + + + Create a of the + + + If this is called on a headless server or when there is no active visual Mesh attached to the target, this method returns null. + + + + Spawn a prefab without any Components except visuals. Also prevents calling Awake methods of the prefab. + + + + + + + Queues a new prefab to be rendered. The resulting will be ready at the next frame. + + Only true if the target was queued for rendering + + + + Target GameObject to create a from + + + + + Pixel width of the generated + + + + + Pixel height of the generated + + + + + Rotation of the prefab to capture + + + + + Field of view of the camera used to create the . Default is small to simulate orthographic view. An orthographic camera is not possible because of shaders + + + + + Distance multiplier, should not be required with the default + + + + + Callback for the generated + + + + + Create a new RenderRequest + + Object to be rendered. A copy of the provided GameObject will be created for rendering + + + + Manager for handling custom skills added to the game. + + + + + Global singleton instance of the manager. + + + + + Initialize the manager + + + + + Add a new skill with given SkillConfig object. + + SkillConfig object representing new skill to register + The SkillType of the newly added skill + + + + Register a new skill with given parameters, and registers translations for it in the current localization. + + Unique identifier of the new skill, ex: "com.jotunn.testmod.testskill" + Name of the new skill + Description of the new skill + + Icon for the skill + The SkillType of the newly registered skill + + + + Adds skills defined in a JSON file at given path, relative to BepInEx/plugins + + JSON file path, relative to BepInEx/plugins folder + + + + Gets a custom skill with given SkillType. + + SkillType to look for + Custom skill with given SkillType + + + + Gets a custom skill with given skill identifier. + + String indentifer of SkillType to look for + Custom skill with given SkillType + + + + Manager for handling synchronisation between client and server instances. + + + + + Event triggered after server configuration is applied to client + + + + + Event triggered after a clients admin status changed on the server + + + + + Singleton instance + + + + + Clientside indicator if the current player has admin status on + the current world, always true on local games + + + + + Manager's main init + + + + + Init or reset admin and configuration state + + + + + + + Hook to start a watchdog Coroutine which monitors the admin list. + + + + + + + Hook ZNet.RPC_PeerInfo on the server to send initial data + + + + + + + + + Hook to synchronize the admin status to the clients + + + + + + + Hook to synchronize the admin status to the clients + + + + + + + Checks the ZNet.m_instance.m_adminList against the cached list and send any + changes to the corresponding clients. + + + + + Sends the current admin state of a player on a server to the client + + Socket host name of the peer + Admin state to send to the client + + + + Safely invoke the event + + + + + Unlock configuration entries. + + + + + Lock configuration entries. + + + + + Hook to unlock cursor properly and disable camera rotation + + + + + + + Window display state changed event. + + + + + + + Initial cache the config values of dependent plugins and register ourself to config change events + + + + + + + Sync the local bep config on reload + + + + + + + Return the cached local value of a bep config thats locked + + + + + Prevent overwriting bep config value when the setting is locked on config file reload + + + + + Cache the synchronizable configuration values for comparison + + + + + Get syncable configuration values as tuples + + + + + + Syncs the changed configuration of a client to the server + + + + + Cache local config values for synced entries + + + + + Reset configs which may have been overwritten with server values to the local value + + + + + Safely invoke the event + + + + + Apply received configuration values locally and regenerate the cache + + Package of config tuples + Indicator if this was an initial config package + + + + Generate ZPackage from configuration tuples + + Indicator if this is the initial config package + List of config tuples to include in the package + + + + + Wrapper Socket which holds up and preserves PeerInfo or RoutedRPC packages until + the finished member is set to true. All other packages get sent. This will + stop the client from completing the login handshake with the server until ready. + + + + + Manager for adding custom Locations and Vegetation. + + + + + The singleton instance of this manager. + + + + + Event that gets fired after the vanilla locations are in memory and available for cloning or editing. + Your code will execute every time before a new is copied (on every menu start). + If you want to execute just once you will need to unregister from the event after execution. + + + + + Container for custom locations in the DontDestroyOnLoad scene. + + + + + Initialize the manager + + + + + Return a that matches any of the provided Biomes + + Biomes that should match + + + + Returns a list of all that match + + + + + + + Get a ZoneLocation by its name.

+ Search hierarchy: + + Custom Location with the exact name + Vanilla Location with the exact name from + +
+ Name of the ZoneLocation to search for. + The existing ZoneLocation, or null if none exists with given name +
+ + + Create an empty GameObject that is disabled, so any Components in instantiated GameObjects will not start their lifecycle. + + Name of the location + + + + + Create a copy that is disabled, so any Components in instantiated GameObjects will not start their lifecycle + + Prefab to copy + Replace JVLmock GameObjects with a copy of their real prefab + + + + + Create a CustomLocation that is a deep copy of the original. + Changes will not affect the original. The CustomLocation is already registered to be added. + + name of the custom location + name of the existing location to copy + + + + + Register a CustomLocation to be added to the ZoneSystem + + + + + + + Register a CustomVegetation to be added to the ZoneSystem + + + + + + + Get a ZoneVegetation by its name.

+ Search hierarchy: + + Custom Vegetation with the exact name + Vanilla Vegetation with the exact name from + +
+ Name of the ZoneVegetation to search for. + The existing ZoneVegetation, or null if none exists with given name +
+ + + Util functions related to loading assets at runtime. + + + + + Path separator for AssetBundles + + + + + Loads a from file at runtime. + + Texture path relative to "plugins" BepInEx folder + Is the given path relative + Texture2D loaded, or null if invalid path + + + + Loads a from file at runtime. + + Texture path relative to "plugins" BepInEx folder + Texture2D loaded, or null if invalid path + + + + Loads a from file at runtime. + + Texture path relative to "plugins" BepInEx folder + The pivot to use in the resulting Sprite + Texture2D loaded, or null if invalid path + + + + Loads a mesh from a .obj file at runtime. + + Mesh path relative to "plugins" BepInEx folder + Texture2D loaded, or null if invalid path + + + + Loads an asset bundle at runtime. + + Asset bundle path relative to "plugins" BepInEx folder + AssetBundle loaded, or null if invalid path + + + + Load an assembly-embedded + + Name of the bundle. Folders are point-seperated e.g. folder/bundle becomes folder.bundle + Executing assembly + + + + + Load an assembly-embedded file as a char string /> + + Name of the file. Folders are point-seperated e.g. folder/file.json becomes folder.file.json + Executing assembly + + + + + Loads the contents of a file as a char string + + + + + + + Loads a from a file path or an asset bundle (separated by ) + + + + + + + Cached plugin list + + + + + Cache loaded plugins which depend on Jotunn. + + + + + + Get a dictionary of loaded plugins which depend on Jotunn. + + Dictionary of plugin GUID and + + + + Get from a + + of the plugin main class + + + + + Get from an + + of the plugin + + + + + Get from a path, also matches subfolder paths + + object of the plugin path + + + + + Get metadata information from the current calling mod + + + + + + Original code from https://github.com/GoldenJude. + + + + + Corrects any bone disorder caused by unity incorrectly importing ripped assets. + Once enabled, bone reordering will occur whenever the equipment changes. + If one plug-in requests application of reordering, it will be applied globally for all EquipmentChanged events. + + + + + The state of reordering bones OnEquipmentChanged. + + Returns true when bone reordering is enabled. + + + + Reorders bone ordering caused by importing ripped assets into unity. + It effectively matches the bone ordering from the ItemPrefab (itemPrefabHash parameter). + + + + GameObjects that need to match the ordering from the ItemPrefab (itemPrefabHash parameter) + + + + Reorders incorrect bone ordering caused by importing ripped assets into unity. + + + + + + + + Returns a list of bone names, given a SkinnedMeshRenderer. + + + + + + + Returns a transform matching the given name within the transforms children. + + + + + + + + Event args class for configuration synchronization event + + + + + Is this the initial synchronization? + + + + + Get non-vanilla variant indices from the ZDO + + + + + Check for variant changes and pass the variant to AttachItem + + + + + Check for variant changes and pass the variant to AttachBackItem + + + + + Check for variant changes and pass the variant to AttachArmor + + + + + Store the variant index of the right hand item to the ZDO if the variant has changed + + + + + Store the variant index of the right back item to the ZDO if the variant has changed + + + + + Store the variant index of the chest item to the ZDO if the variant has changed + + + + + A util class for computing various hashes + + + + + Compute a SHA256 hash from a given string + + + + + + + Implementation of the mod compatibility features. + + + + + Stores the last server message. + + + + + Initialize Patches + + + + + Initialize early running patches + + + + + Store server's message. + + + + + + + Create and show mod compatibility error message + + + + + Create the error message(s) from the server and client message data + + server data + client data + + + + + Generate message for client's mod version lower than server's version + + Module version data + + + + + Generate message for server's mod version lower than client's version + + server module data + client module data + + + + + Get module. + + + + + + Deserialize version string into a usable format. + + + + + Create from module data + + + + + + Create from ZPackage + + + + + + Valheim version + + + + + Module data + + + + + Create ZPackage + + ZPackage + + + + + + + Utility class to query metadata about loaded mods and their added content + + + + + Get all loaded mod's metadata + + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s of a mod by GUID + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Get all added s + + + + + + Get all added s of a mod by GUID + + GUID of the mod + + + + + Model class holding metadata of Jötunn mods. + + + + + The mod GUID + + + + + Human readable name + + + + + Current version + + + + + Custom prefabs added by that mod + + + + + Custom items added by that mod + + + + + Custom recipes added by that mod + + + + + Custom item conversions added by that mod + + + + + Custom status effects added by that mod + + + + + Custom piece tables added by that mod + + + + + Custom pieces added by that mod + + + + + Custom commands added by that mod + + + + + Custom commands added by that mod + + + + + Determines the level of compatibility of a mod which is enforced by Jötunn. + Servers disconnect clients with mods which enforce their compatibility when + the version does not match as defined by the VersionStrictness attribute. + + + + + Mod is not checked at all, VersionsStrictness does not apply. + + + + + Mod is checked only if the client and server have loaded it and ignores if just one side has it. + + + + + Mod must be loaded on server and client. Version checking depends on the VersionStrictness. + + + + + If mod is installed on the server, every client has to have it. VersionStrictness does apply when both sides have it. + + + + + If mod is installed on the client, the server has to have it. VersionStrictness does apply when both sides have it. + + + + + Version check is performed when both server and client have the mod, no check if the mod is actually installed. + + + + + Mod is not checked at all, VersionsStrictness does not apply. + + + + + Enum used for telling whether or not the same mod version should be used by both the server and the clients. + This enum is only useful with certain CompatibilityLevel values. + + + + + No version check is done + + + + + Mod must have the same Major version + + + + + Mods must have the same Minor version + + + + + Mods must have the same Patch version + + + + + Mod compatibility attribute
+
+ PLEASE READ
+ Example usage:
+ If your mod adds its own RPCs, EnforceModOnClients is likely a must (otherwise clients would just discard the messages from the server), same version you do have to determine, if your sent data changed
+ If your mod adds items, you always should enforce mods on client and same version (there could be nasty side effects with different versions of an item)
+ If your mod is just GUI changes (for example bigger inventory, additional equip slots) there is no need to set this attribute +
+
+ + + Compatibility Level + + + + + Version Strictness + + + + + Network Compatibility Attribute + + + + + + + Priority attribute for PatchInitalizer. + + + + + The patch priority. + + negative - early +
+ zero - neutral +
+ positive - late +
+
+
+ + + Patch Init Attribute + + + + + + Various Path constants used in Jötunn + + + + + Path to the game's save path + + + + + Path to the custom item folder + + + + + Path to the global translation folder + + + + + Various utility methods aiding Reflection tasks. + + + + + All possible binding flags + + + + + Determines whether this type is the same or a subclass of another type + + this type + Type against the type is checked + true if this type is the same or a subtype + + + + Determines if this type inherits from + + this type + + + + + Get the generic type of this type.
+ https://stackoverflow.com/a/21995826 +
+ this type + +
+ + + Get the of the first caller outside of this assembly + + The reflected type of the first caller outside of this assembly + + + + Get the of the first caller outside of this assembly + + The assembly of the first caller outside of this assembly + + + + Invoke a private method of any class instance + + Instance of the class + Name of the method + Argument values (if any) of the method + The return of the method as an + + + + Get the value of a private property of any class instance + + Generic property type + Instance of the class + Name of the property + The value of the property + + + + Get the value of a private field of any class instance + + Generic field type + Instance of the class + Name of the field + The value of the field + + + + Get the value of a private static field of any class + + Generic field type + Type of the class + Name of the field + The value of the field + + + + Set a value of a private field of any class instance + + Instance of the class + Name of the field + New value of the field + + + + Cache for Reflection tasks. + + + + + of + + + + + of + + + + + of + + + + + Various static utility methods for working with Shaders + + + + + Get a list of all and in this GameObject and its childs. + + Parent GameObject + List of and + + + + Get a list of all renderer of a GameObject and its childs + + Parent GameObject + List of + + + + Get a list of all shared renderer of a GameObject and its childs + + Parent GameObject + List of + + + + Get a list of all normal and shared renderer of a GameObject and its childs + + Parent GameObject + List of + + + + Dumps all shader information of a GameObject and its childs onto debug log + + + + + + Like a list but stores elements in the order specified by the weight. + + + + + + + Weighted item used in + + + + + + Class that specifies how a setting should be displayed inside the ConfigurationManager settings window. + + Usage: + This class template has to be copied inside the plugin's project and referenced by its code directly. + make a new instance, assign any fields that you want to override, and pass it as a tag for your setting. + + If a field is null (default), it will be ignored and won't change how the setting is displayed. + If a field is non-null (you assigned a value to it), it will override default behavior. + + + + Here's an example of overriding order of settings and marking one of the settings as advanced: + + // Override IsAdvanced and Order + Config.AddSetting("X", "1", 1, new ConfigDescription("", null, new ConfigurationManagerAttributes { IsAdvanced = true, Order = 3 })); + // Override only Order, IsAdvanced stays as the default value assigned by ConfigManager + Config.AddSetting("X", "2", 2, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 1 })); + Config.AddSetting("X", "3", 3, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 2 })); + + + + + You can read more and see examples in the readme at https://github.com/BepInEx/BepInEx.ConfigurationManager + You can optionally remove fields that you won't use from this class, it's the same as leaving them null. + + + + + ctor + + + + + Show this setting in the settings screen at all? If false, don't show. + + + + + If set, a "Default" button will be shown next to the setting to allow resetting to default. + + + + + Force the "Reset" button to not be displayed, even if a valid DefaultValue is available. + + + + + Order of the setting on the settings list relative to other settings in a category. + 0 by default, higher number is higher on the list. + + + + + Only show the value, don't allow editing it. + + + + + If true, don't show the setting by default. User has to turn on showing advanced settings or search for it. + + + + + Whether a config is only writable by admins and gets overwritten on connecting clients + + + + + Color of the entry text + + + + + Color of the description text + + + + + Whether a config is locked for direct writing + + + + + When a config is locked, cache the local value + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of . + + The implementation to use when comparing keys, or null to use the default for the type of the key. + + + + Gets the at the specified index. + + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Gets the keys. + + The keys. + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + +
+
diff --git a/ValheimClient/BepInEx/plugins/JotunnBackpacks/JotunnBackpacks.dll b/ValheimClient/BepInEx/plugins/JotunnBackpacks/JotunnBackpacks.dll new file mode 100644 index 0000000..af578da Binary files /dev/null and b/ValheimClient/BepInEx/plugins/JotunnBackpacks/JotunnBackpacks.dll differ diff --git a/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/English/JotunnBackpacks_English.json b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/English/JotunnBackpacks_English.json new file mode 100644 index 0000000..08c6754 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/English/JotunnBackpacks_English.json @@ -0,0 +1,11 @@ +{ + "item_cape_ironbackpack": "Rugged Backpack", + "item_cape_ironbackpack_description": "A Rugged backpack, complete with buckles and fine leather straps.", + "se_ruggedbackpackeffects_start": "Backpack equipped", + + "item_cape_silverbackpack": "Arctic Backpack", + "item_cape_silverbackpack_description": "An Arctic backpack, fit for long treks through the mountains.", + "se_arcticbackpackeffects_start": "Backpack equipped", + + "ui_backpack_inventoryname": "Backpack" +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Norwegian/JotunnBackpacks_Norwegian.json b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Norwegian/JotunnBackpacks_Norwegian.json new file mode 100644 index 0000000..fa1b05b --- /dev/null +++ b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Norwegian/JotunnBackpacks_Norwegian.json @@ -0,0 +1,11 @@ +{ + "item_cape_ironbackpack": "Allsidig Ryggsekk", + "item_cape_ironbackpack_description": "En Allsidig ryggsekk, tilpasset alle terreng.", + "se_ruggedbackpackeffects_start": "Ryggsekk på", + + "item_cape_silverbackpack": "Arktisk Ryggsekk", + "item_cape_silverbackpack_description": "En Arktisk ryggsekk, for de lange fjellturene om vinteren.", + "se_arcticbackpackeffects_start": "Ryggsekk av", + + "ui_backpack_inventoryname": "Ryggsekk" +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Russian/JotunnBackpacks_Russian.json b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Russian/JotunnBackpacks_Russian.json new file mode 100644 index 0000000..f03e336 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/JotunnBackpacks/Translations/Russian/JotunnBackpacks_Russian.json @@ -0,0 +1,11 @@ +{ + "item_cape_ironbackpack": "Прочный рюкзак", + "item_cape_ironbackpack_description": "Крепко укрепленный рюкзак с пряжками и тонкими кожаными ремнями.", + "se_ruggedbackpackeffects_start": "Рюкзак экипирован", + + "item_cape_silverbackpack": "Полярный рюкзак", + "item_cape_silverbackpack_description": "Рюкзак c утепленной спинкой, отлично подходит для длительных походов в горы.", + "se_arcticbackpackeffects_start": "Рюкзак экипирован", + + "ui_backpack_inventoryname": "Рюкзак" +} \ No newline at end of file diff --git a/ValheimClient/BepInEx/plugins/JudesEqipment/JudesEquipment.dll b/ValheimClient/BepInEx/plugins/JudesEqipment/JudesEquipment.dll new file mode 100644 index 0000000..7ac04e2 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/JudesEqipment/JudesEquipment.dll differ diff --git a/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/English/translations.json b/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/English/translations.json new file mode 100644 index 0000000..8fead55 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/English/translations.json @@ -0,0 +1,69 @@ +{ + "pp_flask_elements": "Flask of Elements", + "pp_flask_elements_description": "You feel resistant to lost forms of magic. Increase resistance to Spirit and Lightning attacks for 5 min.", + "pp_flask_fort": "Flask of Fortification", + "pp_flask_fort_description": "Your skin feels like stone. Greatly increases your fortification for 5 min.", + "pp_flask_magelight": "Flask of Magelight", + "pp_flask_magelight_description": "You feel funny, your skin starts to glow. Grants the user Magelight for a short time.", + "pp_flask_secondwind": "Flask of Second Wind", + "pp_flask_secondwind_description": "You feel lighter on your feet, running and jumping stamina reduced over 2 min and improved stamina regeneration.", + "pp_flask_god": "Flask of the Gods", + "pp_flask_god_description": "Touched by the light of Odin you feel rejuvenated. Healing you instantly for 250 health and improved health regeneration.", + "pp_elixir_healing": "Grand Healing Tide Potion", + "pp_elixir_healing_description": "You feel rejuvenated. A powerful force healing you for 95 health over 10 seconds.", + "pp_elixir_spiritual": "Grand Spiritual Healing Potion", + "pp_elixir_spiritual_description": "Overwhelming healing power, heals you instantly for 100 health.", + "pp_elixir_stam": "Grand Stamina Elixir", + "pp_elixir_stam_description": "A powerful Elixir that restores 150 Stamina over 15 seconds.", + "pp_elixir_stealth": "Grand Stealth Elixir", + "pp_elixir_stealth_description": "Greatly increases your sneak ability for 60 seconds, you feel... sneaky", + "pp_potion_healing": "Medium Healing Tide Flask", + "pp_potion_healing_description": "You feel a wave of healing, 45 Health over 10 seconds.", + "pp_potion_spiritual": "Medium Spiritual Healing Flask", + "pp_potion_spiritual_description": "You feel a powerful healing surge flow through you healing you instantly for 50 health.", + "pp_potion_stam": "Medium Stamina Flask", + "pp_potion_stam_description": "You are gifted with more energy, Instantly restores 90 Stamina.", + "pp_vial_healing": "Lesser Healing Tide Vial", + "pp_vial_healing_description": "Is this thing working? I feel.. better.. Restores 25 health over 10 seconds.", + "pp_vial_spiritual": "Lesser Spiritual Healing Vial", + "pp_vial_spiritual_description": "A lesser healing potion, heals for 25 Health.", + "pp_vial_stam": "Lesser Stamina Vial", + "pp_vial_stam_description": "You gain a second wind, instantly restoring 45 stamina.", + "pp_alchemy_table": "Zoe's Alchemy Table", + "pp_alchemy_table_description": "Alchemy Table for Potions", + "pp_philstone_black": "Onyx Philosopher's Stone", + "pp_philstone_black_description": "A mysterious stone of unknown powers, the very life force of the gods fill this rock.", + "pp_se_black": "Prismatic Ward", + "pp_se_black_description": "If you die with this stone then shame on you...", + "pp_se_black_msg_start": "The gods bless you with unrelenting powers.", + "pp_philstone_blue": "Sapphire Philosopher's Stone", + "pp_philstone_blue_description": "A frozen stone with strange markings, this item posses some type of spirital powers.", + "pp_se_blue": "Frost Ward", + "pp_se_blue_description": "A stone frozen to the touch, crafted by master alchemists.", + "pp_se_blue_msg_start": "The sapphire freezes over, you feel a cold chill.", + "pp_philstone_red": "Ruby Philosopher's Stone", + "pp_philstone_red_description": "A mysterious stone, it appears to be burning but cool to the touch, an essence of magic surrounds it.", + "pp_se_red": "Fire Ward", + "pp_se_red_description": "The stone beginds to fade of it's flames.", + "pp_se_red_msg_start": "The Ruby Stone glows bright with flames. ", + "pp_philstone_green": "Emerald Philosopher's Stone", + "pp_philstone_green_description": "A Green stone of unknown powers, filled with chaos and life, there is a feeling of protection about it.", + "pp_se_green": "Poison Ward", + "pp_se_green_description": "The stone begins to fade of it's life.", + "pp_se_green_msg_start": "The Emerald Stone binds to your soul.", + "pp_philstone_purple": "Amethyst Philosopher's Stone", + "pp_philstone_purple_description": "The Amethyst Stone gives a charged feeling, you can feel overwhelming power flowing from it.", + "pp_se_purple": "Lightning Ward", + "pp_se_purple_description": "The stones charge begins to fade of it's power.", + "pp_se_purple_msg_start": "You feel charged with a mythical force.", + "pp_potion_cauldron": "Potion Cauldron", + "pp_potion_cauldron_description": "A special Cauldron for crafting Potion Base", + "pp_potion_mead": "Potion Base", + "pp_potion_mead_description": "A special Mead developed as a base for higher quality potions.", + "pp_potion_skill_name": "Alchemy", + "pp_potion_skill_description": "A form of chemistry and speculative philosophy that attempts to discover elixirs and a method for transmuting base metals into gold.", + "pp_se_cheatdeath": "Cheat Death", + "pp_se_cheatdeath_desc": "The stones power has brought you back.", + "pp_se_cheatdeath_msg_start": "The stone shatters, leaving nothing but ashes blowing in the wind." +} + diff --git a/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/Russian/translations.json b/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/Russian/translations.json new file mode 100644 index 0000000..9243c91 --- /dev/null +++ b/ValheimClient/BepInEx/plugins/PotionsPlus/Assets/Translations/Russian/translations.json @@ -0,0 +1,68 @@ +{ + "pp_flask_elements": "Пузырек cо стихией", + "pp_flask_elements_description": "Вы почувствуете устойчивость к утраченным формам магии. Повышает сопротивление к атакам от Духа и Молнии на 5 минут.", + "pp_flask_fort": "Пузырек с фортификацией", + "pp_flask_fort_description": "Ваша кожа будет похожа на камень. Значительно увеличит ваше сопротивление на 5 минут.", + "pp_flask_magelight": "Пузырек с магическим светом", + "pp_flask_magelight_description": "Вы почувствуете себя странно, ваша кожа начнет светиться. Предоставляет потребителю временный магический свет.", + "pp_flask_secondwind": "Пузырек со вторым дыханием", + "pp_flask_secondwind_description": "Вы почувствуете у себя легкость в ногах, выносливость при беге и прыжках снизится на 2 минут и улучшить восстановление выносливости.", + "pp_flask_god": "Пузырек богов", + "pp_flask_god_description": "Прикоснувшись к свету Одина, вы почувствуете себя помолодевшим. Мгновенно исцелит вас на 250 единиц здоровья и улучшить восстановление здоровья.", + "pp_elixir_healing": "Большое зелье с приливным исцелением", + "pp_elixir_healing_description": "Вы почувствуете омоложение. Мощная сила, исцелит вас на 95 здоровья за 10 секунд.", + "pp_elixir_spiritual": "Большое зелье с духовным исцелением", + "pp_elixir_spiritual_description": "Подавляющая сила исцеления, которая мгновенно исцелит вас на 100 здоровья.", + "pp_elixir_stam": "Большой эликсир выносливости", + "pp_elixir_stam_description": "Мощный эликсир, восстанавливает 150 выносливости за 15 секунд.", + "pp_elixir_stealth": "Большой эликсир скрытности", + "pp_elixir_stealth_description": "Значительно увеличит вашу способность скрытности на 60 секунд, вы почувствуете себя... коварным.", + "pp_potion_healing": "Средний флакон с приливным исцелением", + "pp_potion_healing_description": "Вы почувствуете волну исцеления, которая восстанавливает 45 здоровья за 10 секунд.", + "pp_potion_spiritual": "Средний флакон с духовным исцелением", + "pp_potion_spiritual_description": "Вы почувствуете, как мощный поток исцеления пройдет через вас и мгновенно исцелит вас на 50 здоровья.", + "pp_potion_stam": "Средний флакон выносливости", + "pp_potion_stam_description": "Вас одарят большей энергией, которая мгновенно восстанавливает 90 выносливости.", + "pp_vial_healing": "Маленький флакон с приливным исцелением", + "pp_vial_healing_description": "Эта штука работает? Почувствуете... себя лучше... Восстанавливает 25 здоровья за 10 секунд.", + "pp_vial_spiritual": "Маленький флакон с духовным исцелением", + "pp_vial_spiritual_description": "Маленькое лечебное снадобье, лечит на 25 здоровья.", + "pp_vial_stam": "Маленький флакон выносливости", + "pp_vial_stam_description": "Вы получаете второе дыхание, которое мгновенно восстанавливает 45 выносливости.", + "pp_alchemy_table": "Алхимический стол Зои", + "pp_alchemy_table_description": "Алхимический стол для зелий", + "pp_philstone_black": "Философский камень Оникса", + "pp_philstone_black_description": "Таинственный камень с неизвестной силой, сама жизненная сила богов наполняет этот камень.", + "pp_se_black": "Призматический оберег", + "pp_se_black_description": "Если ты умрешь с этим камнем, позор тебе...", + "pp_se_black_msg_start": "Боги благословляют вас неумолимой силой.", + "pp_philstone_blue": "Сапфировый философский камень", + "pp_philstone_blue_description": "Замороженный камень со странными отметинами, этот предмет обладает некой духовной силой.", + "pp_se_blue": "Ледяной оберег", + "pp_se_blue_description": "Холодный на ощупь камень, созданный мастерами-алхимиками.", + "pp_se_blue_msg_start": "Сапфир замерзает, вы чувствуете холодный озноб.", + "pp_philstone_red": "Рубиновый философский камень", + "pp_philstone_red_description": "Таинственный камень, он кажется горящим, но холодный при прикосновении, он окружен магической сущностью.", + "pp_se_red": "Огненный оберег", + "pp_se_red_description": "Камень становится тусклым от своего пламени.", + "pp_se_red_msg_start": "Рубиновый камень ярко блестит пламенем.", + "pp_philstone_green": "Изумрудный философский камень", + "pp_philstone_green_description": "Зеленый камень с неизвестной силой, наполненный хаосом и жизнью, в нем ощущается защита.", + "pp_se_green": "Ядовитый оберег", + "pp_se_green_description": "Камень становится тусклым от своей сущности.", + "pp_se_green_msg_start": "Изумрудный камень связывается с вашей душой.", + "pp_philstone_purple": "Аметистовый философский камень", + "pp_philstone_purple_description": "Аметистовый камень дает заряжающее ощущение, вы можете почувствовать, как от него исходит огромная сила..", + "pp_se_purple": "Молниевый оберег", + "pp_se_purple_description": "Заряд камней начинает терять свою силу.", + "pp_se_purple_msg_start": "Вы чувствуете себя заряженным мифической силой.", + "pp_potion_cauldron": "Котел для зельеварения", + "pp_potion_cauldron_description": "Особый котел для создания основы зелий.", + "pp_potion_mead": "Основа зелья", + "pp_potion_mead_description": "Специальная медовуха, разработанная как основа для зелий более высокого качества.", + "pp_potion_skill_name": "Алхимия", + "pp_potion_skill_description": "Форма химии и умозрительной философии, которая пытается открыть эликсиры и метод превращения неблагородных металлов в золото.", + "pp_se_cheatdeath": "Обман смерти", + "pp_se_cheatdeath_desc": "Сила камней вернула вас обратно.", + "pp_se_cheatdeath_msg_start": "Камень разлетается вдребезги, не оставляя ничего, кроме пепла, развевающегося на ветру." +} diff --git a/ValheimClient/BepInEx/plugins/PotionsPlus/PotionsPlus.dll b/ValheimClient/BepInEx/plugins/PotionsPlus/PotionsPlus.dll new file mode 100644 index 0000000..500846a Binary files /dev/null and b/ValheimClient/BepInEx/plugins/PotionsPlus/PotionsPlus.dll differ diff --git a/ValheimClient/BepInEx/plugins/SellThat/Valheim.SellThat.dll b/ValheimClient/BepInEx/plugins/SellThat/Valheim.SellThat.dll new file mode 100644 index 0000000..c819656 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/SellThat/Valheim.SellThat.dll differ diff --git a/ValheimClient/BepInEx/plugins/SpeedyPaths/SpeedyPaths.dll b/ValheimClient/BepInEx/plugins/SpeedyPaths/SpeedyPaths.dll new file mode 100644 index 0000000..8f3789e Binary files /dev/null and b/ValheimClient/BepInEx/plugins/SpeedyPaths/SpeedyPaths.dll differ diff --git a/ValheimClient/BepInEx/plugins/UseEquipmentInWater/UseEquipmentInWater.dll b/ValheimClient/BepInEx/plugins/UseEquipmentInWater/UseEquipmentInWater.dll new file mode 100644 index 0000000..0d0aad8 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/UseEquipmentInWater/UseEquipmentInWater.dll differ diff --git a/ValheimClient/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll b/ValheimClient/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll new file mode 100644 index 0000000..b6db3d1 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/abjuration_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/abjuration_skill.png new file mode 100644 index 0000000..cc8326d Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/abjuration_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/alteration_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/alteration_skill.png new file mode 100644 index 0000000..05f9443 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/alteration_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ash_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ash_icon.png new file mode 100644 index 0000000..278f4a1 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ash_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_blackforest_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_blackforest_icon.png new file mode 100644 index 0000000..2fe1d79 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_blackforest_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_meadows_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_meadows_icon.png new file mode 100644 index 0000000..da566b6 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_meadows_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mist_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mist_icon.png new file mode 100644 index 0000000..bd3242c Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mist_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mountain_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mountain_icon.png new file mode 100644 index 0000000..8e85e83 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_mountain_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ocean_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ocean_icon.png new file mode 100644 index 0000000..5c032d6 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_ocean_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_plains_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_plains_icon.png new file mode 100644 index 0000000..dd2f613 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_plains_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_swamp_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_swamp_icon.png new file mode 100644 index 0000000..7b45cdd Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/biome_swamp_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/conjuration_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/conjuration_skill.png new file mode 100644 index 0000000..177d2e9 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/conjuration_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/discipline_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/discipline_skill.png new file mode 100644 index 0000000..b142a8e Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/discipline_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/evocation_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/evocation_skill.png new file mode 100644 index 0000000..b755cce Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/evocation_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/icon.png new file mode 100644 index 0000000..d80d715 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/illusion_skill.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/illusion_skill.png new file mode 100644 index 0000000..ee0476e Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/illusion_skill.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/monk_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/monk_icon.png new file mode 100644 index 0000000..f710865 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/monk_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/movement_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/movement_icon.png new file mode 100644 index 0000000..6c466d4 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/movement_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/protection_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/protection_icon.png new file mode 100644 index 0000000..6b2dc30 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/protection_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/ranger_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/ranger_icon.png new file mode 100644 index 0000000..d5e036d Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/ranger_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/riposte_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/riposte_icon.png new file mode 100644 index 0000000..95b7775 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/riposte_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/rogue_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/rogue_icon.png new file mode 100644 index 0000000..d18b7a1 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/rogue_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/strength_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/strength_icon.png new file mode 100644 index 0000000..d164ed7 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/strength_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/valkyrie_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/valkyrie_icon.png new file mode 100644 index 0000000..b77de36 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/valkyrie_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/weaken_icon.png b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/weaken_icon.png new file mode 100644 index 0000000..ae28bd4 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/VLAssets/weaken_icon.png differ diff --git a/ValheimClient/BepInEx/plugins/ValheimLegends/ValheimLegends.dll b/ValheimClient/BepInEx/plugins/ValheimLegends/ValheimLegends.dll new file mode 100644 index 0000000..71d47a4 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimLegends/ValheimLegends.dll differ diff --git a/ValheimClient/BepInEx/plugins/ValheimPlus.dll b/ValheimClient/BepInEx/plugins/ValheimPlus.dll new file mode 100644 index 0000000..bcd99e0 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ValheimPlus.dll differ diff --git a/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/ch.easy.develope.vh.diving.mod.dll b/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/ch.easy.develope.vh.diving.mod.dll new file mode 100644 index 0000000..3693926 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/ch.easy.develope.vh.diving.mod.dll differ diff --git a/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/watermat.assets b/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/watermat.assets new file mode 100644 index 0000000..0421ee2 Binary files /dev/null and b/ValheimClient/BepInEx/plugins/ch.easy.develope.vh.diving.mod/watermat.assets differ diff --git a/ValheimClient/doorstop_config.ini b/ValheimClient/doorstop_config.ini new file mode 100644 index 0000000..e033b03 --- /dev/null +++ b/ValheimClient/doorstop_config.ini @@ -0,0 +1,16 @@ +[UnityDoorstop] +# Specifies whether assembly executing is enabled +enabled=true +# Specifies the path (absolute, or relative to the game's exe) to the DLL/EXE that should be executed by Doorstop +targetAssembly=BepInEx\core\BepInEx.Preloader.dll +# Specifies whether Unity's output log should be redirected to \output_log.txt +redirectOutputLog=false +# If enabled, DOORSTOP_DISABLE env var value is ignored +# USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS +ignoreDisableSwitch=false +# Overrides default Mono DLL search path +# Sometimes it is needed to instruct Mono to seek its assemblies from a different path +# (e.g. mscorlib is stripped in original game) +# This option causes Mono to seek mscorlib and core libraries from a different folder before Managed +# Original Managed folder is added as a secondary folder in the search path +dllSearchPathOverride=unstripped_corlib \ No newline at end of file diff --git a/ValheimClient/doorstop_libs/libdoorstop_x64.dylib b/ValheimClient/doorstop_libs/libdoorstop_x64.dylib new file mode 100644 index 0000000..8c25b9f Binary files /dev/null and b/ValheimClient/doorstop_libs/libdoorstop_x64.dylib differ diff --git a/ValheimClient/doorstop_libs/libdoorstop_x64.so b/ValheimClient/doorstop_libs/libdoorstop_x64.so new file mode 100644 index 0000000..9eb7e8f Binary files /dev/null and b/ValheimClient/doorstop_libs/libdoorstop_x64.so differ diff --git a/ValheimClient/doorstop_libs/libdoorstop_x86.dylib b/ValheimClient/doorstop_libs/libdoorstop_x86.dylib new file mode 100644 index 0000000..27a9864 Binary files /dev/null and b/ValheimClient/doorstop_libs/libdoorstop_x86.dylib differ diff --git a/ValheimClient/doorstop_libs/libdoorstop_x86.so b/ValheimClient/doorstop_libs/libdoorstop_x86.so new file mode 100644 index 0000000..0025d85 Binary files /dev/null and b/ValheimClient/doorstop_libs/libdoorstop_x86.so differ diff --git a/ValheimClient/unstripped_corlib/Mono.Posix.dll b/ValheimClient/unstripped_corlib/Mono.Posix.dll new file mode 100644 index 0000000..2db3f3f Binary files /dev/null and b/ValheimClient/unstripped_corlib/Mono.Posix.dll differ diff --git a/ValheimClient/unstripped_corlib/Mono.Security.dll b/ValheimClient/unstripped_corlib/Mono.Security.dll new file mode 100644 index 0000000..db50b2c Binary files /dev/null and b/ValheimClient/unstripped_corlib/Mono.Security.dll differ diff --git a/ValheimClient/unstripped_corlib/System.Configuration.dll b/ValheimClient/unstripped_corlib/System.Configuration.dll new file mode 100644 index 0000000..2185e7e Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.Configuration.dll differ diff --git a/ValheimClient/unstripped_corlib/System.Core.dll b/ValheimClient/unstripped_corlib/System.Core.dll new file mode 100644 index 0000000..2e013fa Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.Core.dll differ diff --git a/ValheimClient/unstripped_corlib/System.Numerics.dll b/ValheimClient/unstripped_corlib/System.Numerics.dll new file mode 100644 index 0000000..22cc0a8 Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.Numerics.dll differ diff --git a/ValheimClient/unstripped_corlib/System.Security.dll b/ValheimClient/unstripped_corlib/System.Security.dll new file mode 100644 index 0000000..f3927fa Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.Security.dll differ diff --git a/ValheimClient/unstripped_corlib/System.Xml.dll b/ValheimClient/unstripped_corlib/System.Xml.dll new file mode 100644 index 0000000..e574c57 Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.Xml.dll differ diff --git a/ValheimClient/unstripped_corlib/System.dll b/ValheimClient/unstripped_corlib/System.dll new file mode 100644 index 0000000..91c0d11 Binary files /dev/null and b/ValheimClient/unstripped_corlib/System.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AIModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AIModule.dll new file mode 100644 index 0000000..78e7704 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AIModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ARModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ARModule.dll new file mode 100644 index 0000000..faa2f92 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ARModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AccessibilityModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AccessibilityModule.dll new file mode 100644 index 0000000..5229d35 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AccessibilityModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AndroidJNIModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AndroidJNIModule.dll new file mode 100644 index 0000000..52d1ec4 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AndroidJNIModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AnimationModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AnimationModule.dll new file mode 100644 index 0000000..6243b6b Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AnimationModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AssetBundleModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AssetBundleModule.dll new file mode 100644 index 0000000..ebe4176 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AssetBundleModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.AudioModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.AudioModule.dll new file mode 100644 index 0000000..04a092a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.AudioModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ClothModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ClothModule.dll new file mode 100644 index 0000000..e9a819d Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ClothModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ClusterInputModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ClusterInputModule.dll new file mode 100644 index 0000000..6324fbb Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ClusterInputModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ClusterRendererModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ClusterRendererModule.dll new file mode 100644 index 0000000..26ef8fa Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ClusterRendererModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.CoreModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.CoreModule.dll new file mode 100644 index 0000000..f1a6e13 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.CoreModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.CrashReportingModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.CrashReportingModule.dll new file mode 100644 index 0000000..7d391bd Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.CrashReportingModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.DSPGraphModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.DSPGraphModule.dll new file mode 100644 index 0000000..eba8cc1 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.DSPGraphModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.DirectorModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.DirectorModule.dll new file mode 100644 index 0000000..5976cc5 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.DirectorModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.GameCenterModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.GameCenterModule.dll new file mode 100644 index 0000000..4797dbe Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.GameCenterModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.GridModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.GridModule.dll new file mode 100644 index 0000000..61c1ec4 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.GridModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.HotReloadModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.HotReloadModule.dll new file mode 100644 index 0000000..746630a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.HotReloadModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.IMGUIModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.IMGUIModule.dll new file mode 100644 index 0000000..b557b58 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.IMGUIModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ImageConversionModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ImageConversionModule.dll new file mode 100644 index 0000000..79aa449 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ImageConversionModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.InputLegacyModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.InputLegacyModule.dll new file mode 100644 index 0000000..1067ff9 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.InputLegacyModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.InputModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.InputModule.dll new file mode 100644 index 0000000..3be4fb9 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.InputModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.JSONSerializeModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.JSONSerializeModule.dll new file mode 100644 index 0000000..cd1981f Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.JSONSerializeModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.LocalizationModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.LocalizationModule.dll new file mode 100644 index 0000000..292f854 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.LocalizationModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ParticleSystemModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ParticleSystemModule.dll new file mode 100644 index 0000000..c570bbe Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ParticleSystemModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.PerformanceReportingModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.PerformanceReportingModule.dll new file mode 100644 index 0000000..faf6411 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.PerformanceReportingModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.Physics2DModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.Physics2DModule.dll new file mode 100644 index 0000000..65dba8a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.Physics2DModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.PhysicsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.PhysicsModule.dll new file mode 100644 index 0000000..4a7a9a6 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.PhysicsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ProfilerModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ProfilerModule.dll new file mode 100644 index 0000000..7644763 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ProfilerModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.ScreenCaptureModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.ScreenCaptureModule.dll new file mode 100644 index 0000000..4ec8198 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.ScreenCaptureModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.SharedInternalsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.SharedInternalsModule.dll new file mode 100644 index 0000000..8a9c9eb Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.SharedInternalsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.SpriteMaskModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.SpriteMaskModule.dll new file mode 100644 index 0000000..3de5b54 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.SpriteMaskModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.SpriteShapeModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.SpriteShapeModule.dll new file mode 100644 index 0000000..b59a5b8 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.SpriteShapeModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.StreamingModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.StreamingModule.dll new file mode 100644 index 0000000..69068e5 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.StreamingModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.SubstanceModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.SubstanceModule.dll new file mode 100644 index 0000000..451b91e Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.SubstanceModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.SubsystemsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.SubsystemsModule.dll new file mode 100644 index 0000000..b5b7429 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.SubsystemsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TLSModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TLSModule.dll new file mode 100644 index 0000000..9fae713 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TLSModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TerrainModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TerrainModule.dll new file mode 100644 index 0000000..18b193e Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TerrainModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TerrainPhysicsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TerrainPhysicsModule.dll new file mode 100644 index 0000000..48119b4 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TerrainPhysicsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TextCoreModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TextCoreModule.dll new file mode 100644 index 0000000..e13a54d Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TextCoreModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TextRenderingModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TextRenderingModule.dll new file mode 100644 index 0000000..447239e Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TextRenderingModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.TilemapModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.TilemapModule.dll new file mode 100644 index 0000000..6c43665 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.TilemapModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UI.dll b/ValheimClient/unstripped_corlib/UnityEngine.UI.dll new file mode 100644 index 0000000..2ffc046 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UI.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UIElementsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UIElementsModule.dll new file mode 100644 index 0000000..cacf72b Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UIElementsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UIModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UIModule.dll new file mode 100644 index 0000000..e082dda Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UIModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UNETModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UNETModule.dll new file mode 100644 index 0000000..0234fad Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UNETModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UmbraModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UmbraModule.dll new file mode 100644 index 0000000..1045e18 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UmbraModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityAnalyticsModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityAnalyticsModule.dll new file mode 100644 index 0000000..e3c39e8 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityAnalyticsModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityConnectModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityConnectModule.dll new file mode 100644 index 0000000..7ec2470 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityConnectModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityTestProtocolModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityTestProtocolModule.dll new file mode 100644 index 0000000..297e455 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityTestProtocolModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAssetBundleModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAssetBundleModule.dll new file mode 100644 index 0000000..0024d85 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAssetBundleModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAudioModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAudioModule.dll new file mode 100644 index 0000000..d4f9220 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestAudioModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestModule.dll new file mode 100644 index 0000000..b99842a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestTextureModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestTextureModule.dll new file mode 100644 index 0000000..d8b643a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestTextureModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestWWWModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestWWWModule.dll new file mode 100644 index 0000000..b8b8314 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.UnityWebRequestWWWModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.VFXModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.VFXModule.dll new file mode 100644 index 0000000..0895120 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.VFXModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.VRModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.VRModule.dll new file mode 100644 index 0000000..ea9d6fe Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.VRModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.VehiclesModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.VehiclesModule.dll new file mode 100644 index 0000000..f7c1085 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.VehiclesModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.VideoModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.VideoModule.dll new file mode 100644 index 0000000..92c9898 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.VideoModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.WindModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.WindModule.dll new file mode 100644 index 0000000..8ac2232 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.WindModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.XRModule.dll b/ValheimClient/unstripped_corlib/UnityEngine.XRModule.dll new file mode 100644 index 0000000..a58bf6a Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.XRModule.dll differ diff --git a/ValheimClient/unstripped_corlib/UnityEngine.dll b/ValheimClient/unstripped_corlib/UnityEngine.dll new file mode 100644 index 0000000..3a2ab18 Binary files /dev/null and b/ValheimClient/unstripped_corlib/UnityEngine.dll differ diff --git a/ValheimClient/unstripped_corlib/mscorlib.dll b/ValheimClient/unstripped_corlib/mscorlib.dll new file mode 100644 index 0000000..b1e4c77 Binary files /dev/null and b/ValheimClient/unstripped_corlib/mscorlib.dll differ diff --git a/ValheimClient/valheim_Data/boot.config b/ValheimClient/valheim_Data/boot.config new file mode 100644 index 0000000..baf652f --- /dev/null +++ b/ValheimClient/valheim_Data/boot.config @@ -0,0 +1,6 @@ +gfx-enable-jobs=1 +gfx-enable-native-gfx-jobs=1 +wait-for-native-debugger=0 +vr-enabled=0 +hdr-display-enabled=0 +gc-max-time-slice=3 \ No newline at end of file diff --git a/ValheimClient/winhttp.dll b/ValheimClient/winhttp.dll new file mode 100644 index 0000000..bdf9c79 Binary files /dev/null and b/ValheimClient/winhttp.dll differ