GithubHelp home page GithubHelp logo

eideehi / valheim-automatics Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 4.0 3.07 MB

[Valheim] Mods that automate a variety of tasks

Home Page: https://www.nexusmods.com/valheim/mods/1700

License: MIT License

C# 100.00%

valheim-automatics's People

Contributors

eideehi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

valheim-automatics's Issues

[Feature request] Automatic doors only when looking at them

Hi,
I would like it for automatic doors to only open when the player looks at them. A certain angle within their cameraview or based on character rotation.
Example usecase where this might be handy;
Early game, using existing tiny structures as first base, the door will currently constantly open if the player gets close. Even when your workbench is next to it.

Dark Wood Doors

Dark Wood Doors
I just added some Dark Wood doors to a building and they do not automatically open when I walk up to them like the Wood Doors do. I did discover if I jump at them then they will open, but this is annoying. Also, they don't stay open until you walk through them - they open then close immediately after.

After Valheim patch 0.216.9, Automatics has broken functionality

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.4.7

What happened?

Upgraded to Valheim 0.216.9 from 0.215.2. After the upgrade, I am noticing some of the Automatics having issue, like:

  • Automatic feeding the smelter
  • Automatic pin mapping
  • Automatic feeding

(There may be more that I will note or rely on others to report to this ticket)

List of Mods required to reproduce the bug

Here is my current r2modman profile:
0188c4ac-f525-e243-5255-2555e17f6d5d

Steps to reproduce the bug

  1. Update to public release of Valheim 0.216.9 with Automatics mod enabled.
  2. Check Automatics functionality (currently, does the smelter auto craft? Do the map pins show? Animals dont feed)

File attachments

[Error : HarmonyX] Failed to patch void Fireplace::UpdateFireplace(): System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
at HarmonyLib.CodeMatcher.get_Operand () [0x00016] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.CodeMatcher.SetOperandAndAdvance (System.Object operand) [0x00000] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at Automatics.AutomaticProcessing.Patches.Fireplace_UpdateFireplace_Transpiler (System.Collections.Generic.IEnumerable`1[T] instructions, System.Reflection.Emit.ILGenerator generator) [0x0018e] in <6a52e55e52a54864824b4cdbae6eac96>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
at HarmonyLib.Internal.Patching.ILManipulator.ApplyTranspilers (System.Reflection.Emit.ILGenerator il, System.Reflection.MethodBase original, System.Func`2[T,TResult] getLocal, System.Func`1[TResult] defineLabel) [0x00093] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Internal.Patching.ILManipulator.WriteTo (Mono.Cecil.Cil.MethodBody body, System.Reflection.MethodBase original) [0x00066] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.WriteTranspilers () [0x00084] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x0002b] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
at HarmonyLib.Internal.Patching.ILManipulator.ApplyTranspilers (System.Reflection.Emit.ILGenerator il, System.Reflection.MethodBase original, System.Func`2[T,TResult] getLocal, System.Func`1[TResult] defineLabel) [0x00093] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Internal.Patching.ILManipulator.WriteTo (Mono.Cecil.Cil.MethodBody body, System.Reflection.MethodBase original) [0x00066] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.WriteTranspilers () [0x00084] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x0002b] in <474744d65d8e460fa08cd5fd82b5d65f>:0
Rethrow as HarmonyException: IL Compile Error (unknown location)
at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x00378] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.Process (MonoMod.Cil.ILContext ilContext, System.Reflection.MethodBase originalMethod) [0x00042] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.Manipulate (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo, MonoMod.Cil.ILContext ctx) [0x00006] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.HarmonyManipulator.Manipulate (System.Reflection.MethodBase original, MonoMod.Cil.ILContext ctx) [0x00007] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Public.Patching.ManagedMethodPatcher.Manipulator (MonoMod.Cil.ILContext ctx) [0x00012] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at MonoMod.Cil.ILContext.Invoke (MonoMod.Cil.ILContext+Manipulator manip) [0x00087] in <6733e342b5b549bba815373898724469>:0
at MonoMod.RuntimeDetour.ILHook+Context.InvokeManipulator (Mono.Cecil.MethodDefinition def, MonoMod.Cil.ILContext+Manipulator cb) [0x00012] in <4e2760c7517c4ea79c633d67e84b319f>:0
at (wrapper dynamic-method) MonoMod.RuntimeDetour.ILHook+Context.DMD<MonoMod.RuntimeDetour.ILHook+Context::Refresh>(MonoMod.RuntimeDetour.ILHook/Context)
at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.Trampoline<MonoMod.RuntimeDetour.ILHook+Context::Refresh>?1882262528(object)
at HarmonyLib.Internal.RuntimeFixes.StackTraceFixes.OnILChainRefresh (System.Object self) [0x00000] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at MonoMod.RuntimeDetour.ILHook.Apply () [0x00059] in <4e2760c7517c4ea79c633d67e84b319f>:0
at HarmonyLib.Public.Patching.ManagedMethodPatcher.DetourTo (System.Reflection.MethodBase replacement) [0x00047] in <474744d65d8e460fa08cd5fd82b5d65f>:0
Rethrow as HarmonyException: IL Compile Error (unknown location)
at HarmonyLib.Public.Patching.ManagedMethodPatcher.DetourTo (System.Reflection.MethodBase replacement) [0x0005f] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00033] in <474744d65d8e460fa08cd5fd82b5d65f>:0
Rethrow as HarmonyException: IL Compile Error (unknown location)
at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x00045] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.PatchClassProcessor.Patch () [0x00095] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Harmony.<PatchAll>b__11_0 (System.Type type) [0x00007] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at HarmonyLib.Harmony.PatchAll () [0x0001b] in <474744d65d8e460fa08cd5fd82b5d65f>:0
at NoSmokeStayLit.NoSmokeStayLitPlugin.Awake () [0x00065] in <11631bd82b874131b9be3b4ff41d7d93>:0
UnityEngine.GameObject:Internal_AddComponentWithType(Type)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.GameObject:.cctor()
UnityEngine.UI.Graphic:CacheCanvas()
UnityEngine.UI.Graphic:get_canvas()
UnityEngine.UI.Image:OnCanvasHierarchyChanged()

[Suggestion] Automatic shield equip and unequip

When Equiping a one-handed weapon the shield with the most block power in the inventory (if none in the first inv. row) will go along with it, both when equipping and when unequipping. (yes, like in v+)

Map icons don't match content

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

I've used auto map pinning with default Custom Map Icons example 2.0.0. That worked fine for test, and I had several raspberry fields marked on map with raspberry icon.

Then I've set to add more custom icons, added icons for a few other plants and animals, and when I've gone back into game old raspberrry locations changed icons, but - it started using "lox.png". I've played for a while like that and noticed that eg. new icons were all being pinned and displayed correctly, including lox.

I've now started new icon pack, changed all icons, and lox icon changed name from lox.png to cow.png yet - again in game those few old locations have lox icons (well, new "cow" ones).

I couldn't find any explanation how are icons tied to locations. All cloudberry fields turned to new icons, all bluberries, jotunnpuffs, magecaps and all, everything converted to new icons (all images AND PNG names are different) but those few raspberries... cow icons ;D

My low is defined like this:

"target": {
      "name": "lox"
    },
    "sprite": {
      "file": "cow.png",
      "width": 32,
      "height": 32
    },

Now I know that if raspberries contained "lox" it would interfere, but according to Jotunn Docs, name is "RaspberryBush" so .. no "lox" inside the string.

Any idea what could've happened?

And would this doc ( https://valheim-modding.github.io/Jotunn/data/zones/vegetation-list.html ) be good place for internal names used by map pinning functionality?

Only thing that comes to mind is that in example json pin sections are, in order:

  1. boar
  2. deer
  3. raspberry

And I modified it so it's:

  1. boar
  2. deer
  3. lox
  4. raspberry
  5. blueberry

Could it be that mod somehow internally indexes JSON array, so BOAR=0 DEER=1 RASPBERRY=2 and so on, and when I made changes it became BOAR=0 DEER=1 LOX=2 RASPBERRY=3 ... and so old locations that maybe "remember" being [2] are now pulling icons for current [2] which is lox?

Also (did not test) what happens to the map and icons if mod is removed at some point? Do icons default to something like default "dot" marker? or will it corrupt the map? Save game? or would it just erase all existing pins from map? I wasn't brave enough to test yet...

Steps to reproduce the bug

  1. use example 2.0.0 map icon pack
  2. let it pin few raspberry bushes
  3. change example's json and add "lox" pinning section with any custom png and put it BETWEEN deer and raspberries sections:
"target": {
      "name": "lox"
    },
    "sprite": {
      "file": "cow.png",
      "width": 32,
      "height": 32
    },
  1. go back in game, and existing pins will become the new lox icons

Logs and screenshots

No response

Automatic Door is no longer per player

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

This mod alone did not reproduce the bug

List of mods to reproduce bug

Lots (24) but it was working fine before updating this mod to 1.4.0 (no other mods were updated). Discovered it earlier today and didn't get a chance to test it without other mods.

What happened?

Expected: I(host) can have Automatic Door enabled while another player has it disabled and doors will only open automatically for me (or that the host's setting will override other players' whenever the host is present).
Actual: Whoever was first to enter an area (or has otherwise been there the longest) will override the other's setting.

Note: I was hosting locally (via the "Start Server" menu option) and have Automatic Door enabled, other player does not.

Side note: I think this might happen to other features (automatic processing) as well but haven't properly tested them.

Steps to reproduce the bug

  1. Have Automatic Door enabled
  2. Enter an area no one else is in (e.g. via long distance portal)
  3. Note functioning auto-doors
  4. Have another player with Automatic Door disabled enter area
  5. Note Automatic Doors apply for all
  6. Have original auto-door player leave area and return
  7. Note doors no longer open automatically.

Logs and screenshots

No response

Auga Support?

It Seems To Work With Auga's Mod But Fills Console With Map Pinning Errors, Dynamic, And Static, I Switch It To Relies On A Button Press With The Static Map Which Work Sometimes To Not At All. I Love This Mod And I Love Using The Custom Map Pins.

Errors.txt

Portal Pins not removing when destroyed with being set in config too

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.4.6

What happened?

Portal Pins not removing when destroyed with being set in config too. I had moved my portals but shows old and new locations. Double checked setting and I enabled to remove destroyed objects. Tried disabling and re-enabling. Was unable to manually remove as well. Right clicking icons does nothing. Using automatics 1.4.6. Is their a way to clear all static map pins with console? To start fresh.

List of Mods required to reproduce the bug

Automatic 1.4.6

Steps to reproduce the bug

Place portal let save.
Move portal.
Try to remove pin.

File attachments

No response

More gates "doors"

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

There was a dialog box where you could put the names of MoreGates by RagnarokHCRP mod like "Portcullis" or "Gate" but that has been removed.

What happened?

Dialog box has been removed

Steps to reproduce the bug

Walk up to a MoreGates by RagnarokHCRP and none of the gates will open.

Logs and screenshots

No response

LControl+A autodoor disable/enable

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Since version 1.4.0 I can switch off Automaticdoor with LControl+A but not switch it on.
Also some gates do not work anymore. I have to cancel them and build again.

Steps to reproduce the bug

  1. LControl+A to disable Automaticdoor (theis works)
  2. LControl+A again to enable. It is still disabled and I have to enable manualy

Logs and screenshots

No response

Update auto pickup to stop overencumbering users. Or add a variable to stop autopickup after player has reached x weight

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

If you're at your weight limit and trying to walk anywhere, you start picking up rocks and other trash overencumbering you. Since there's no plan to be able to filter items, which would be the most effective solution, at least add a means to stop auto pickup when a condition is met. Either set it at 300/450 or allow the user to set it, similar to how there's a minimum item number cutoff for automatic processing. Thanks.

Steps to reproduce the bug

Just walk around at full weight capacity

Logs and screenshots

No response

Wont load custom icons for jewelcrafting, throws error

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

This mod alone did not reproduce the bug

List of mods to reproduce bug

[all prereqs]
automatics
jewelcrafting
(OdinHorse for comparison)

("Is this a bug cuased by this mod alone?" was set to "this mod alone did not reproduce the bug" because the bug is due to trying to use automatics with modded stuff

What happened?

Error making custom icons for jewelcrafting

When autopinning, it works.

in: net-eidee.valheim.automatics.cfg - entry for automatics autopinning for jewelcrafting example:

custom_mineral = "[{\"identifier\":\"RawGreenGemstone\",\"label\":\"Emerald\",\"matches\":[{\"regex\":false,\"value\":\"$jc_raw_green_gemstone\"}]}] "

But when trying to load the custom icon, it loads the default round white dot, and throws the following error:

[Error  : Unity Log] ArgumentException: An item with the same key has already been added. Key: Automatics.AutomaticMapping.StaticObjectMapping+MapPinIdentify
Stack trace:
System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <695d1cc93cca45069c528c15c9fdd749>:0)
Automatics.AutomaticMapping.StaticObjectMapping.AddPin (ZDOID uniqueId, UnityEngine.Vector3 pos, System.String pinName, System.Boolean save, Automatics.AutomaticMapping.Target target) (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticMapping.StaticObjectMapping.AddPin (ZDOID uniqueId, UnityEngine.Vector3 pos, System.String pinName, Automatics.AutomaticMapping.Target target) (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticMapping.StaticObjectMapping.MineralMapping (UnityEngine.Component component, System.String name) (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticMapping.StaticObjectMapping.Mapping () (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticMapping.AutomaticMapping.Mapping (Player player, System.Single delta, System.Boolean takeInput) (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticMapping.Patches.Minimap_UpdateMap_Postfix (Player player, System.Single dt, System.Boolean takeInput) (at <8c72363294194c5aa81f46a90142a1c5>:0)
(wrapper dynamic-method) Minimap.DMD<Minimap::UpdateMap>(Minimap,Player,single,bool)
(wrapper dynamic-method) Minimap.DMD<Minimap::Update>(Minimap)

in: custom-map-icons.json - entry for automatics custom map icons for jewelcrafting example:

    {
        "target": {
            "name": "$jc_raw_green_gemstone"
        },
        "sprite": {
            "file": "uncutgreen.png",
            "width": 64,
            "height": 64
        },
        "options": {
            "hideNameTag": true

        }
    }

Return from (in console) printobjects mineral:

"Emerald Formation" ($jc_raw_green_gemstone)
  Pos: *omitted*
  Recommended identifier: RawGreenGemstone
  Pattern: $jc_raw_green_gemstone

It does, however, work for odinhorse. Both autopinning and custom map icons. Info below for comparison

in: net-eidee.valheim.automatics.cfg - entry for automatics autopinning for odinhorse example:

custom_animal = "[{\"identifier\":\"RaeOdinHorse\",\"label\":\"Horse\",\"matches\":[{\"regex\":false,\"value\":\"$horse_odin\"}]}]"

in: custom-map-icons.json - entry for automatics custom map icons for odinhorse example:

    {
        "target": {
            "name": "$horse_odin"
        },
        "sprite": {
            "file": "horse.png",
            "width": 64,
            "height": 64
        },
        "options": {
            "hideNameTag": true
        }
    }

Return from (in console) printobjects animal


"Horse" ($horse_odin)
  Pos: *omitted*
  Recommended Identifier: RaeOdinHorse
  Pattern: $horse_odin
  

Steps to reproduce the bug

Install mods previously listed

append in the previously listed configs, as well as adding in the necessary automatics custom map pins pieces as well as icon *.png's (blank placeholder *.png's have been uploaded to use, as to not share assets that do not belong to me

Logs and screenshots

horse
uncutgreen

Any idea?

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
ExtendedPlayerInventory.BepInExPlugin+HaveEmptySlot_Patch.Prefix (Inventory __instance, System.Boolean& __result, System.Collections.Generic.List`1[T] ___m_inventory, System.Int32 ___m_width, System.Int32 ___m_height) (at <4c0568a64cd44a31b6fcb2184a5e5942>:0)
(wrapper dynamic-method) Inventory.DMDInventory::HaveEmptySlot(Inventory)
(wrapper dynamic-method) Inventory.DMDInventory::CanAddItem(Inventory,ItemDrop/ItemData,int)
Automatics.AutomaticProcessing.AutomaticCraft.Run (Smelter piece, ZNetView zNetView) (at <4194280648e14ef9b5bf68be6409a9a5>:0)
Automatics.AutomaticProcessing.Patches.SmelterUpdateSmelterPostfix (Smelter __instance, ZNetView ___m_nview) (at <4194280648e14ef9b5bf68be6409a9a5>:0)
(wrapper dynamic-method) Smelter.DMDSmelter::UpdateSmelter(Smelter)

Losing all map markers

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

This mod alone did not reproduce the bug

List of mods to reproduce bug

Jewelcrafting 1.3.13 by Smothbrain

What happened?

Ive added about 6 differnt kinds of jewel mineable nodes from Jewelcraft under the mineral section, clicked on auto marking and in the mining section ive selected auto mining. For mining section i have ticked, need pickaxe equiped.

The nodes show up on minimap and main map. After mining them the node marker disapears as with the new option for that, but all map markers that i have placed or from boss stones or anything on entire map disapear.

Identifer:RawOrangeGemstone
label:Humite Gems
Pattern: $jc_raw_Orange_Gemstone

that is what i used for one minable type..

Cat woke up and is wanting his morning luvin so sorry for typos and rushness. He's already closed my window out twice. :/

Steps to reproduce the bug

  1. Find gem, make sure it is auto marked on map.
  2. Make a marker close by so you can see it on minimap
  3. Switch to pickaxe and auto mine gem site,
  4. Watch all your markers disapear

Logs and screenshots

No response

Not compatible with the Monmod patch

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.3

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

Y1%GPA%K %XPDX6RG$B9GTX

What happened?

The auto module is not compatible with the HookGenPatcher, and the stack in the box has an error

Steps to reproduce the bug

更新补丁后出现

Logs and screenshots

Y1%GPA%K %XPDX6RG$B9GTX

Config file constantly being written in a loop

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.4

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Watch the config file in a separate editor such as VSCode. It constantly is flushed and rewritten while the game is running. This is wasting needless IO operations. Should not be writing the config file constantly unless something changed.

Steps to reproduce the bug

Run the game with mod installed.
Watch the config file rewrite over and over again.

Logs and screenshots

No response

Valheim update + automatics throwing error

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.2

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

When loading with nothing but automatics and custom map icons

[Warning:  HarmonyX] AccessTools.Field: Could not find field for type Minimap+PinData and name m_nameElement
[Error  :  HarmonyX] Failed to patch void Minimap::UpdatePins(): System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.CodeMatcher.get_Labels () [0x00016] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.CodeMatcher.CreateLabel (System.Reflection.Emit.Label& label) [0x00011] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at Automatics.AutomaticMapping.Patches.Minimap_UpdatePins_Transpiler (System.Collections.Generic.IEnumerable`1[T] instructions, System.Reflection.Emit.ILGenerator generator) [0x001c2] in <e28d2479d5a7448381f5e5ecd0111e08>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.Internal.Patching.ILManipulator.ApplyTranspilers (System.Reflection.Emit.ILGenerator il, System.Reflection.MethodBase original, System.Func`2[T,TResult] getLocal, System.Func`1[TResult] defineLabel) [0x00093] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Internal.Patching.ILManipulator.WriteTo (Mono.Cecil.Cil.MethodBody body, System.Reflection.MethodBase original) [0x00066] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteTranspilers () [0x00084] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x0002b] in <474744d65d8e460fa08cd5fd82b5d65f>:0

When loading with altered config

[Warning:  HarmonyX] AccessTools.Field: Could not find field for type Minimap+PinData and name m_nameElement
[Error  :  HarmonyX] Failed to patch void Minimap::UpdatePins(): System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.CodeMatcher.get_Labels () [0x00016] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.CodeMatcher.CreateLabel (System.Reflection.Emit.Label& label) [0x00011] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at Automatics.AutomaticMapping.Patches.Minimap_UpdatePins_Transpiler (System.Collections.Generic.IEnumerable`1[T] instructions, System.Reflection.Emit.ILGenerator generator) [0x001c2] in <e28d2479d5a7448381f5e5ecd0111e08>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.Internal.Patching.ILManipulator.ApplyTranspilers (System.Reflection.Emit.ILGenerator il, System.Reflection.MethodBase original, System.Func`2[T,TResult] getLocal, System.Func`1[TResult] defineLabel) [0x00093] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Internal.Patching.ILManipulator.WriteTo (Mono.Cecil.Cil.MethodBody body, System.Reflection.MethodBase original) [0x00066] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteTranspilers () [0x00084] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x0002b] in <474744d65d8e460fa08cd5fd82b5d65f>:0
[Error  :Automatics] Error while initializing Initialize
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> HarmonyLib.HarmonyException: IL Compile Error (unknown location) ---> HarmonyLib.HarmonyException: IL Compile Error (unknown location) ---> HarmonyLib.HarmonyException: IL Compile Error (unknown location) ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.CodeMatcher.get_Labels () [0x00016] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.CodeMatcher.CreateLabel (System.Reflection.Emit.Label& label) [0x00011] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at Automatics.AutomaticMapping.Patches.Minimap_UpdatePins_Transpiler (System.Collections.Generic.IEnumerable`1[T] instructions, System.Reflection.Emit.ILGenerator generator) [0x001c2] in <e28d2479d5a7448381f5e5ecd0111e08>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at HarmonyLib.Internal.Patching.ILManipulator.ApplyTranspilers (System.Reflection.Emit.ILGenerator il, System.Reflection.MethodBase original, System.Func`2[T,TResult] getLocal, System.Func`1[TResult] defineLabel) [0x00093] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Internal.Patching.ILManipulator.WriteTo (Mono.Cecil.Cil.MethodBody body, System.Reflection.MethodBase original) [0x00066] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteTranspilers () [0x00084] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x0002b] in <474744d65d8e460fa08cd5fd82b5d65f>:0
   --- End of inner exception stack trace ---
  at HarmonyLib.Public.Patching.HarmonyManipulator.WriteImpl () [0x00378] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.Process (MonoMod.Cil.ILContext ilContext, System.Reflection.MethodBase originalMethod) [0x00042] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.Manipulate (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo, MonoMod.Cil.ILContext ctx) [0x00006] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.HarmonyManipulator.Manipulate (System.Reflection.MethodBase original, MonoMod.Cil.ILContext ctx) [0x00007] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Public.Patching.ManagedMethodPatcher.Manipulator (MonoMod.Cil.ILContext ctx) [0x00012] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at MonoMod.Cil.ILContext.Invoke (MonoMod.Cil.ILContext+Manipulator manip) [0x00087] in <6733e342b5b549bba815373898724469>:0
  at MonoMod.RuntimeDetour.ILHook+Context.InvokeManipulator (Mono.Cecil.MethodDefinition def, MonoMod.Cil.ILContext+Manipulator cb) [0x00012] in <4e2760c7517c4ea79c633d67e84b319f>:0
  at (wrapper dynamic-method) MonoMod.RuntimeDetour.ILHook+Context.DMD<MonoMod.RuntimeDetour.ILHook+Context::Refresh>(MonoMod.RuntimeDetour.ILHook/Context)
  at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.Trampoline<MonoMod.RuntimeDetour.ILHook+Context::Refresh>?-1484691456(object)
  at HarmonyLib.Internal.RuntimeFixes.StackTraceFixes.OnILChainRefresh (System.Object self) [0x00000] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at MonoMod.RuntimeDetour.ILHook.Apply () [0x00059] in <4e2760c7517c4ea79c633d67e84b319f>:0
  at HarmonyLib.Public.Patching.ManagedMethodPatcher.DetourTo (System.Reflection.MethodBase replacement) [0x00047] in <474744d65d8e460fa08cd5fd82b5d65f>:0
   --- End of inner exception stack trace ---
  at HarmonyLib.Public.Patching.ManagedMethodPatcher.DetourTo (System.Reflection.MethodBase replacement) [0x0005f] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x00033] in <474744d65d8e460fa08cd5fd82b5d65f>:0
   --- End of inner exception stack trace ---
  at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x00045] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.PatchClassProcessor.Patch () [0x00095] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Harmony.PatchAll (System.Type type) [0x00008] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at HarmonyLib.Harmony.CreateAndPatchAll (System.Type type, System.String harmonyInstanceId) [0x0001e] in <474744d65d8e460fa08cd5fd82b5d65f>:0
  at Automatics.AutomaticMapping.Module.Initialize () [0x000c1] in <e28d2479d5a7448381f5e5ecd0111e08>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0
   --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <695d1cc93cca45069c528c15c9fdd749>:0
  at Automatics.Automatics.InitializeModules (System.Reflection.Assembly assembly) [0x00097] in <e28d2479d5a7448381f5e5ecd0111e08>:0

config

## Settings file was created by plugin Automatics v1.4.2
## Plugin GUID: net.eidee.valheim.automatics

[automatic_door]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
disable_module = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable the feature that automatically opens and closes the door.
# Setting type: Boolean
# Default value: true
enable_automatic_door = true

## Specify which doors are allowed to open and close automatically.
# Setting type: StringList
# Default value: WoodDoor, WoodGate, IronGate, DarkwoodGate, PieceHexagonalDoor
allow_automatic_door = WoodDoor, WoodGate, IronGate, DarkwoodGate

## Specify the interval at which the process of automatically opening the door is called. If set to less than 0.1, the function to automatically open the door will be disabled. (Unit: second)
# Setting type: Single
# Default value: 0.1
# Acceptable value range: From 0 to 8
interval_to_open = 0.1

## Specify the interval at which the process of automatically closing the door is called. If set to less than 0.1, the function to automatically close the door will be disabled. (Unit: second)
# Setting type: Single
# Default value: 0.1
# Acceptable value range: From 0 to 8
interval_to_close = 0.1

## Specify how close the player must be to the door in order for it to open automatically. (Unit: meter)
# Setting type: Single
# Default value: 2.5
# Acceptable value range: From 1 to 8
distance_for_automatic_opening = 1.8

## Specify how far the player must be from the door for the door to close automatically. (Unit: meter)
# Setting type: Single
# Default value: 2.5
# Acceptable value range: From 1 to 8
distance_for_automatic_closing = 1.8

## Specify where a message is displayed when the automatic door is enabled or disabled by a shortcut key.
# Setting type: Message
# Default value: Center
# Acceptable values: None, Center, TopLeft
automatic_door_enable_disable_toggle_message = Center

## Specify a shortcut key to enable/disable the automatic door.
# Setting type: KeyboardShortcut
# Default value: 
automatic_door_enable_disable_toggle = 

[automatic_feeding]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable the feature for animals to automatically consume feed items from players and containers.
# Setting type: Boolean
# Default value: true
enable_automatic_feeding = true

## Specify the range in which the animal searches for food. If set to 0, the default value for each animal will be used. (Unit: meter)
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 64
feed_search_range = 0

## Specify whether the animal needs to approach the container or player to eat the feed.
# Setting type: Boolean
# Default value: false
need_get_close_to_eat_the_feed = false

## Specify the types of animals allowed to feed from the container.
# Setting type: AnimalType
# Default value: Tamed
# Acceptable values: None, Wild, Tamed, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
allow_to_feed_from_container = Tamed

## Specify the types of animals allowed to feed from the player inventory.
# Setting type: AnimalType
# Default value: None
# Acceptable values: None, Wild, Tamed, All
# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning)
allow_to_feed_from_player = Tamed

[automatic_mapping]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable the feature that automatically pinning objects and locations to the map.
# Setting type: Boolean
# Default value: true
enable_automatic_mapping = true

## Specify the range of dynamic objects to be explored. "Dynamic Object" are objects that change position, such as animals, monsters, etc. Set to 0 to disable pinning of dynamic objects. (Unit: meter)
# Setting type: Int32
# Default value: 64
# Acceptable value range: From 0 to 128
dynamic_object_mapping_range = 100

## Specify the range of static objects to be explored. "Static Object" are objects that do not change their position, such as flora, mineral, etc. Setting this to 0 disables pinning of static objects. (Unit: meter)
# Setting type: Int32
# Default value: 32
# Acceptable value range: From 0 to 128
static_object_mapping_range = 100

## Specify the range of location to be explored. "Location" is a specific place, such as dungeon, fuling village, etc. Setting this to 0 disables location pinning. (Unit: meter)
# Setting type: Int32
# Default value: 96
# Acceptable value range: From 0 to 128
location_mapping_range = 100

## Specify the animals to be automatic pinning.
# Setting type: StringList
# Default value: Boar, Piggy, Deer, Wolf, WolfCub, Lox, LoxCalf, Hen, Chicken, Hare, Bird, Fish, RaeOdinHorse
allow_pinning_animal = Boar, Piggy, Deer, Wolf, WolfCub, Lox, LoxCalf, Hen, Chicken, Hare, Bird, Fish, RaeOdinHorse

## Specify the monsters to be automatic pinning.
# Setting type: StringList
# Default value: Greyling, Neck, Ghost, Greydwarf, GreydwarfBrute, GreydwarfShaman, RancidRemains, Skeleton, Troll, Abomination, Blob, Draugr, DraugrElite, Leech, Oozer, Surtling, Wraith, Drake, Fenring, StoneGolem, Deathsquito, Fuling, FulingBerserker, FulingShaman, Growth, Serpent, Bat, FenringCultist, Ulv, DvergrRogue, DvergrMage, Tick, Seeker, SeekerBrood, Gjall, SeekerSoldier
allow_pinning_monster = Greyling, Neck, Ghost, Greydwarf, GreydwarfBrute, GreydwarfShaman, RancidRemains, Skeleton, Troll, Abomination, Blob, Draugr, DraugrElite, Leech, Oozer, Surtling, Wraith, Drake, Fenring, StoneGolem, Deathsquito, Fuling, FulingBerserker, FulingShaman, Growth, Serpent, Bat, FenringCultist, Ulv, DvergrRogue, DvergrMage, Tick, Seeker, SeekerBrood, Gjall, SeekerSoldier

## Specify the flora to be automatic pinning.
# Setting type: StringList
# Default value: Mushroom, Raspberries, Blueberries, CarrotSeeds, Thistle, TurnipSeeds, Cloudberries, JotunPuffs, Magecap
allow_pinning_flora = 

## Specify the mineral to be automatic pinning.
# Setting type: StringList
# Default value: CopperDeposit, TinDeposit, MudPile, SilverVein, PetrifiedBone, SoftTissue
allow_pinning_mineral = CopperDeposit, TinDeposit, MudPile, SilverVein, PetrifiedBone, SoftTissue, ObsidianDeposit, RawGreenGemstone, $jc_raw_green_gemstone

## Specify the spawners to be automatic pinning.
# Setting type: StringList
# Default value: 
allow_pinning_spawner = GreydwarfNest, BodyPile, EvilBonePile

## Specify the vehicles to be automatic pinning.
# Setting type: StringList
# Default value: Karve, Longship
allow_pinning_vehicle = Karve, Longship, Raft, Cart

## Specify the other objects to be automatic pinning.
# Setting type: StringList
# Default value: WildBeehive
allow_pinning_other = WildBeehive, Runestone, Vegvisir

## Specify the dungeons to be automatic pinning.
# Setting type: StringList
# Default value: BurialChambers, TrollCave, SunkenCrypts, MountainCave, InfestedMine
allow_pinning_dungeon = BurialChambers, TrollCave, SunkenCrypts, MountainCave, InfestedMine

## Specify the spots to be automatic pinning.
# Setting type: StringList
# Default value: InfestedTree, FireHole, DrakeNest, GoblinCamp, TarPit, DvergrExcavation, DvergrGuardTower, DvergrHarbour, DvergrLighthouse, PetrifiedBone
allow_pinning_spot = InfestedTree, FireHole, DrakeNest, GoblinCamp, TarPit, DvergrExcavation, DvergrGuardTower, DvergrHarbour, DvergrLighthouse, PetrifiedBone

## Enable automatic pinning for the portal. Portal is treated as a static object.
# Setting type: Boolean
# Default value: true
allow_pinning_portal = true

## Exclude tamed animals from automatic pinning.
# Setting type: Boolean
# Default value: true
not_pinning_tamed_animals = false

## Specify the interval at which static object mapping. Setting to 0 disables periodic static object mapping. (Unit: second)
# Setting type: Single
# Default value: 0.25
# Acceptable value range: From 0 to 4
static_object_mapping_interval = 0.25

## Specify the interval at which static objects will be cached. Mapping of static objects uses this cache. (Unit: second)
# Setting type: Int32
# Default value: 3
# Acceptable value range: From 1 to 8
static_object_caching_interval = 3

## Specify whether to save the pins of static objects.
# Setting type: Boolean
# Default value: false
save_static_object_pins = true

## Specify whether or not to automatically remove pins of objects that have been destroyed and no longer exist.
# Setting type: Boolean
# Default value: true
remove_pins_of_destroyed_object = true

## When pinning flora, it recursively searches for the same flora that exist within a specified range and merge them into a single pin. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 0 to 16
flora_pins_merge_range = 8

## Specify whether the wishbone needs to be equipped to attempt to pinning underground minerals.
# Setting type: Boolean
# Default value: true
need_to_equip_wishbone_for_underground_minerals = true

## Specify shortcut keys for mapping static objects. Setting this item disables the static object mapping at regular intervals, so that it is performed only once each time the shortcut key is pressed.
# Setting type: KeyboardShortcut
# Default value: 
static_object_mapping_key = 

[automatic_mining]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable the feature that mine minerals automatically.
# Setting type: Boolean
# Default value: true
enable_automatic_mining = false

## Specify the interval between mining attempts. (Unit: seconds)
# Setting type: Single
# Default value: 1.5
# Acceptable value range: From 0.1 to 4
mining_interval = 1.5

## Specify the maximum distance to search for a mineral. Setting to 0 the pickaxe's attack range is used. (Unit: meters)
# Setting type: Int32
# Default value: 3
# Acceptable value range: From 0 to 32
mining_range = 3

## Specify the minerals to be automatically mined.
# Setting type: StringList
# Default value: CopperDeposit, TinDeposit, MudPile, ObsidianDeposit, SilverVein, PetrifiedBone, SoftTissue
allow_mining_mineral = TinDeposit, MudPile, ObsidianDeposit, SilverVein, PetrifiedBone, SoftTissue, CopperDeposit

## Specify whether a pickaxe needs to be equipped to attempt automatic mining. Disabling this option will use the most advanced pickaxe in the player's inventory. If there is no pickaxe in the player's inventory, automatic mining will not be attempted.
# Setting type: Boolean
# Default value: true
need_to_equip_pickaxe = true

## Specify whether or not to allow mining underground minerals.
# Setting type: Boolean
# Default value: true
allow_mining_underground_minerals = true

## Specify whether or not to require a wishbone to mine underground minerals.
# Setting type: Boolean
# Default value: true
need_to_equip_wishbone_for_mining_underground_minerals = true

## Specify a shortcut key to attempt mining. If a valid shortcut key is assigned to this option, mining at regular intervals is disabled.
# Setting type: KeyboardShortcut
# Default value: 
mining_key = 

[automatic_pickup]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = true

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Disabled

automatic_pickup_range = 4

automatic_pickup_interval = 0.5

pickup_all_nearby_key = 

[automatic_processing]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable or disable the ability to automatically perform tasks such as cooking, refining, and refuel.
# Setting type: Boolean
# Default value: true
enable_automatic_processing = true

## Specify containers that allow automatic operations such as item supply and storage.
# Setting type: StringList
# Default value: PieceChestWood, PieceChest, PieceChestBlackmetal
allow_container = PieceChestWood, PieceChest, PieceChestBlackmetal

## Specify the automatic processing to be allowed for Beehive
# Setting type: Process
# Default value: Store
# Acceptable values: None, Store
allow_processing_by_piece_beehive = Store

## Specify the maximum distance which Beehive will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_beehive = 8

## Specify the automatic processing to be allowed for Bonfire
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_bonfire = None

## Specify the maximum distance which Bonfire will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_bonfire = 8

## Suppresses automatic processing of Bonfire to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_bonfire_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Bonfire is out of fuel.
# Setting type: Boolean
# Default value: false
piece_bonfire_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Blast furnace
# Setting type: Process
# Default value: All
# Acceptable values: None, Craft, Refuel, Store, All
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Refuel)
allow_processing_by_piece_blastfurnace = All

## Specify the maximum distance which Blast furnace will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_blastfurnace = 8

## Suppresses automatic processing of Blast furnace to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_blastfurnace_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Blast furnace to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_blastfurnace_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Blast furnace run out.
# Setting type: Boolean
# Default value: false
piece_blastfurnace_supply_only_when_materials_run_out = false

## Suppresses automatic processing of Blast furnace to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_blastfurnace_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Blast furnace is out of fuel.
# Setting type: Boolean
# Default value: false
piece_blastfurnace_refuel_only_when_out_of_fuel = false

## Performs automatic refuel only when materials are supplied to Blast furnace.
# Setting type: Boolean
# Default value: false
piece_blastfurnace_refuel_only_when_materials_supplied = false

## Specify the automatic processing to be allowed for Campfire
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_firepit = None

## Specify the maximum distance which Campfire will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_firepit = 8

## Suppresses automatic processing of Campfire to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_firepit_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Campfire is out of fuel.
# Setting type: Boolean
# Default value: false
piece_firepit_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Charcoal kiln
# Setting type: Process
# Default value: Craft, Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_charcoalkiln = Craft, Store

## Specify the maximum distance which Charcoal kiln will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_charcoalkiln = 8

## Suppresses automatic processing of Charcoal kiln to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_charcoalkiln_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Charcoal kiln to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_charcoalkiln_product_stacks_of_suppress_processing = 99

## Performs automatic craft only when materials of Charcoal kiln run out.
# Setting type: Boolean
# Default value: false
piece_charcoalkiln_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Cooking station
# Setting type: Process
# Default value: Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_cookingstation = None

## Specify the maximum distance which Cooking station will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_cookingstation = 8

## Suppresses automatic processing of Cooking station to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_cookingstation_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Cooking station to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_cookingstation_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Cooking station run out.
# Setting type: Boolean
# Default value: false
piece_cookingstation_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Fermenter
# Setting type: Process
# Default value: Craft, Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_fermenter = None

## Specify the maximum distance which Fermenter will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_fermenter = 8

## Suppresses automatic processing of Fermenter to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_fermenter_material_count_of_suppress_processing = 0

## Suppresses automatic processing of Fermenter to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_fermenter_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Fermenter run out.
# Setting type: Boolean
# Default value: false
piece_fermenter_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Hanging brazier
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_brazierceiling01 = None

## Specify the maximum distance which Hanging brazier will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_brazierceiling01 = 8

## Suppresses automatic processing of Hanging brazier to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_brazierceiling01_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Hanging brazier is out of fuel.
# Setting type: Boolean
# Default value: false
piece_brazierceiling01_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Hearth
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_hearth = None

## Specify the maximum distance which Hearth will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_hearth = 8

## Suppresses automatic processing of Hearth to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_hearth_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Hearth is out of fuel.
# Setting type: Boolean
# Default value: false
piece_hearth_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Iron cooking station
# Setting type: Process
# Default value: Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_cookingstation_iron = None

## Specify the maximum distance which Iron cooking station will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_cookingstation_iron = 8

## Suppresses automatic processing of Iron cooking station to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_cookingstation_iron_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Iron cooking station to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_cookingstation_iron_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Iron cooking station run out.
# Setting type: Boolean
# Default value: false
piece_cookingstation_iron_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Jack-o-turnip
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_jackoturnip = None

## Specify the maximum distance which Jack-o-turnip will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_jackoturnip = 8

## Suppresses automatic processing of Jack-o-turnip to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_jackoturnip_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Jack-o-turnip is out of fuel.
# Setting type: Boolean
# Default value: false
piece_jackoturnip_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Sconce
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_sconce = None

## Specify the maximum distance which Sconce will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_sconce = 8

## Suppresses automatic processing of Sconce to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_sconce_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Sconce is out of fuel.
# Setting type: Boolean
# Default value: false
piece_sconce_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Smelter
# Setting type: Process
# Default value: All
# Acceptable values: None, Craft, Refuel, Store, All
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Refuel)
allow_processing_by_piece_smelter = All

## Specify the maximum distance which Smelter will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_smelter = 15

## Suppresses automatic processing of Smelter to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_smelter_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Smelter to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_smelter_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Smelter run out.
# Setting type: Boolean
# Default value: false
piece_smelter_supply_only_when_materials_run_out = false

## Suppresses automatic processing of Smelter to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_smelter_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Smelter is out of fuel.
# Setting type: Boolean
# Default value: false
piece_smelter_refuel_only_when_out_of_fuel = false

## Performs automatic refuel only when materials are supplied to Smelter.
# Setting type: Boolean
# Default value: false
piece_smelter_refuel_only_when_materials_supplied = false

## Specify the automatic processing to be allowed for Spinning wheel
# Setting type: Process
# Default value: Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_spinningwheel = None

## Specify the maximum distance which Spinning wheel will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_spinningwheel = 8

## Suppresses automatic processing of Spinning wheel to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_spinningwheel_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Spinning wheel to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_spinningwheel_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Spinning wheel run out.
# Setting type: Boolean
# Default value: false
piece_spinningwheel_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Standing blue-burning iron torch
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_groundtorchblue = None

## Specify the maximum distance which Standing blue-burning iron torch will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_groundtorchblue = 8

## Suppresses automatic processing of Standing blue-burning iron torch to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_groundtorchblue_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Standing blue-burning iron torch is out of fuel.
# Setting type: Boolean
# Default value: false
piece_groundtorchblue_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Standing brazier
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_brazierfloor01 = None

## Specify the maximum distance which Standing brazier will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_brazierfloor01 = 8

## Suppresses automatic processing of Standing brazier to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_brazierfloor01_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Standing brazier is out of fuel.
# Setting type: Boolean
# Default value: false
piece_brazierfloor01_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Standing green-burning iron torch
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_groundtorchgreen = None

## Specify the maximum distance which Standing green-burning iron torch will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_groundtorchgreen = 8

## Suppresses automatic processing of Standing green-burning iron torch to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_groundtorchgreen_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Standing green-burning iron torch is out of fuel.
# Setting type: Boolean
# Default value: false
piece_groundtorchgreen_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Standing iron torch
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_groundtorch = None

## Specify the maximum distance which Standing iron torch will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_groundtorch = 8

## Suppresses automatic processing of Standing iron torch to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_groundtorch_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Standing iron torch is out of fuel.
# Setting type: Boolean
# Default value: false
piece_groundtorch_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Standing wood torch
# Setting type: Process
# Default value: Refuel
# Acceptable values: None, Refuel
allow_processing_by_piece_groundtorchwood = None

## Specify the maximum distance which Standing wood torch will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_groundtorchwood = 8

## Suppresses automatic processing of Standing wood torch to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_groundtorchwood_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Standing wood torch is out of fuel.
# Setting type: Boolean
# Default value: false
piece_groundtorchwood_refuel_only_when_out_of_fuel = false

## Specify the automatic processing to be allowed for Stone oven
# Setting type: Process
# Default value: All
# Acceptable values: None, Craft, Refuel, Store, All
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Refuel)
allow_processing_by_piece_oven = All

## Specify the maximum distance which Stone oven will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_oven = 8

## Suppresses automatic processing of Stone oven to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_oven_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Stone oven to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_oven_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Stone oven run out.
# Setting type: Boolean
# Default value: false
piece_oven_supply_only_when_materials_run_out = false

## Suppresses automatic processing of Stone oven to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_oven_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Stone oven is out of fuel.
# Setting type: Boolean
# Default value: false
piece_oven_refuel_only_when_out_of_fuel = false

## Performs automatic refuel only when materials are supplied to Stone oven.
# Setting type: Boolean
# Default value: false
piece_oven_refuel_only_when_materials_supplied = false

## Specify the automatic processing to be allowed for Windmill
# Setting type: Process
# Default value: Store
# Acceptable values: None, Craft, Store
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Store)
allow_processing_by_piece_windmill = None

## Specify the maximum distance which Windmill will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_windmill = 8

## Suppresses automatic processing of Windmill to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_windmill_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Windmill to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_windmill_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Windmill run out.
# Setting type: Boolean
# Default value: false
piece_windmill_supply_only_when_materials_run_out = false

## Specify the automatic processing to be allowed for Wisp fountain
# Setting type: Process
# Default value: Store
# Acceptable values: None, Store
allow_processing_by_piece_wisplure = None

## Specify the maximum distance which Wisp fountain will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_wisplure = 8

## Specify the automatic processing to be allowed for Sap extractor 
# Setting type: Process
# Default value: Store
# Acceptable values: None, Store
allow_processing_by_piece_sapcollector = Store

## Specify the maximum distance which Sap extractor  will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_sapcollector = 8

## Specify the automatic processing to be allowed for Eitr refinery
# Setting type: Process
# Default value: Store
# Acceptable values: None, Craft, Refuel, Store, All
# Multiple values can be set at the same time by separating them with , (e.g. Craft, Refuel)
allow_processing_by_piece_eitrrefinery = None

## Specify the maximum distance which Eitr refinery will search for containers. (Unit: meter)
# Setting type: Int32
# Default value: 8
# Acceptable value range: From 1 to 64
container_search_range_by_piece_eitrrefinery = 8

## Suppresses automatic processing of Eitr refinery to prevent the count of materials stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of materials.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_eitrrefinery_material_count_of_suppress_processing = 1

## Suppresses automatic processing of Eitr refinery to prevent the item stacks of products stored in a container from exceeding a specified quantity. Set to 0 to disable automatic processing suppression based on the count of products.
# Setting type: Int32
# Default value: 0
# Acceptable value range: From 0 to 99
piece_eitrrefinery_product_stacks_of_suppress_processing = 0

## Performs automatic craft only when materials of Eitr refinery run out.
# Setting type: Boolean
# Default value: false
piece_eitrrefinery_supply_only_when_materials_run_out = false

## Suppresses automatic processing of Eitr refinery to prevent the count of fuels stored in a container from falling below a specified quantity. Set to 0 to disable automatic processing suppression based on the count of fuels.
# Setting type: Int32
# Default value: 1
# Acceptable value range: From 0 to 999
piece_eitrrefinery_fuel_count_of_suppress_processing = 1

## Performs automatic refuel only when Eitr refinery is out of fuel.
# Setting type: Boolean
# Default value: false
piece_eitrrefinery_refuel_only_when_out_of_fuel = false

## Performs automatic refuel only when materials are supplied to Eitr refinery.
# Setting type: Boolean
# Default value: false
piece_eitrrefinery_refuel_only_when_materials_supplied = false

[automatic_repair]

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: Boolean
# Default value: false
module_disable = false

## You can disable this feature completely to avoid adding logic you don't need. (Game must be restart for reflect this option)
# Setting type: AutomaticsModule
# Default value: Enabled
# Acceptable values: Enabled, Disabled
module = Enabled

## Specify whether to enable the feature that automatically repair items and pieces.
# Setting type: Boolean
# Default value: true
enable_automatic_repair = false

## Specify the range to search for a crafting station to be used to repair items. Setting to 0 disables periodic item repair. (Unit: meters)
# Setting type: Int32
# Default value: 16
# Acceptable value range: From 0 to 64
crafting_station_search_range = 16

## Specify whether or not to repair all items that can be repaired when the workbench GUI is opened.
# Setting type: Boolean
# Default value: false
repair_items_when_accessing_the_crafting_station = false

## Specify where the message is displayed when an item is repaired.
# Setting type: Message
# Default value: None
# Acceptable values: None, Center, TopLeft
item_repair_message = None

## Specify the range to search for a pieces to repair. Setting to 0 disables periodic pieces repairs. (Unit: meters)
# Setting type: Int32
# Default value: 16
# Acceptable value range: From 0 to 64
piece_search_range = 16

## Specify where the message is displayed when a piece is repaired.
# Setting type: Message
# Default value: None
# Acceptable values: None, Center, TopLeft
piece_repair_message = None

[general]

## Any animal can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the animal. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the animal. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_animal = "[{\"identifier\":\"RaeOdinHorse\",\"label\":\"Horse\",\"matches\":[{\"regex\":false,\"value\":\"$horse_odin\"}]}]"

## Any dungeon can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the dungeon. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the prefab name of the dungeon. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_dungeon = 

## Any flora can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the flora. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the flora. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_flora = 

## Any mineral can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the mineral. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the mineral. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_mineral = 

## Any monster can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the monster. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the monster. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_monster = 

## Any spawner can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the spawner. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the spawner. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_spawner = 

## Any spot can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the spot. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the prefab name of the spot. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_spot = 

## Any door can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the door. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal name of the door. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_door = 

## Any vehicle can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the vehicle. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the prefab name of the vehicle. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_vehicle = 

## Any object can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the object. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal or prefab name of the object. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_other = 

## Any container can be added.\nIdentifier: a unique string that does not overlap with any other identifier. White spaces are not allowed.\nLabel: The name of the container. Mainly used in GUI. If you specify an internal name, it will be translated automatically.\nPattern: A pattern matching the internal or prefab name of the container. Exact matches are evaluated. You can set a regular expression by concatenating r/ at the beginning.
# Setting type: List`1
# Default value: 
custom_container = 

[hidden]

## [automatics_config_hidden_NexusID_description]
# Setting type: Int32
# Default value: 1700
NexusID = 1700

[system]

## Specify whether to enable log output. System initialization logs for Automatics are always output regardless of the value of this option.
# Setting type: Boolean
# Default value: false
enable_logging = true

## Specify the log level that allows logging.
# Setting type: LogLevel
# Default value: Fatal, Error, Warning, Message
# 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)
log_level_to_allow_logging = Fatal, Error, Warning

## [This option will be discontinued in the near future. Check the README for details]
## Specify the absolute path of the directory where your custom translation files and resources such as custom map icons are stored. If a valid value is specified for this option, the default resource directory (the same directory as Automations.dll) is followed by the resources stored in this directory.
# Setting type: String
# Default value: 
resources_directory = 

Steps to reproduce the bug

load updated game and mod

for second error block, load updated game and mod with altered config

Logs and screenshots

No response

Can't start a game with v1.4.1

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.1

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

I'll be honest, I did not try with just automatics 1.4.1, but only thing I've updated today was Automatics from 1.4.0 to 1.4.1.
When I try to start my game, I can select character, and when I select world to load, and try to load... simply nothing happens. I can click the button all I want.
I've noticed error in console mentions Automatics, so I've copied it below.

Renaming Automatics.dll allowed game to start without issues.

I have 60+ mods, but until today they've all played nicely with each others, and none of them had issues with Automatcis 1.4.0

I only have auto-doors "module" enabled, if that helps.

Steps to reproduce the bug

Upgrade v.1.4.0 to v1.4.1. Try to start a game - no go.
Disable dll - game starts fine

Logs and screenshots

Log:

[Info   : Unity Log] 03/11/2023 20:03:26: show character selection

[Info   : Unity Log] 03/11/2023 20:03:27: OnCharacterStart

[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
Automatics.Patches+<>c.<FejdStartup_Awake_Postfix>b__0_0 (System.Object sender, FejdStartup+StartGameEventArgs args) (at <22c7936e25484513ae594b929358d2da>:0)
FejdStartup.OnWorldStart () (at <0a1a436be26b421bb46752e573a7aa2f>:0)
UnityEngine.Events.InvokableCall.Invoke () (at <c9fb31c2eee14ce4aeb36e4c61e154d8>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <c9fb31c2eee14ce4aeb36e4c61e154d8>:0)
UnityEngine.UI.Button.Press () (at <67859b8eac9e4f3b99606821e32b26c6>:0)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at <67859b8eac9e4f3b99606821e32b26c6>:0)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at <67859b8eac9e4f3b99606821e32b26c6>:0)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <67859b8eac9e4f3b99606821e32b26c6>:0)
UnityEngine.EventSystems.EventSystem:Update()

[Feature Request] Auto ping icon without name

Apologies if this is already possible and I misunderstood.

Would it be possible for autoping to only place icons, no name?
I would like to get icons for plants, but only an icon with a multiplier if applicable would suffice.
Since I'm using custom icons, the icon itself conveys enough info about what it is, and it stops clutter on my map.

NullReferenceException

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

This mod alone did not reproduce the bug

List of mods to reproduce bug

Build Restriction Tweaks 0.4.0

Enable BRT with Automatics #7 Automatic Repair enabled and you will see the following exception on the console repeatedly:

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
CraftingStation.CheckUsable (Player player, System.Boolean showMessage) (at <35c0f7aa1999477788815a7bf78200d7>:0)
Automatics.AutomaticRepair.ItemRepair+<>c__DisplayClass8_0.b__0 (CraftingStation x) (at <8c72363294194c5aa81f46a90142a1c5>:0)
System.Linq.Enumerable+WhereSelectListIterator2[TSource,TResult].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0) System.Linq.Enumerable+WhereSelectEnumerableIterator2[TSource,TResult].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
System.Linq.Enumerable.Sum (System.Collections.Generic.IEnumerable`1[T] source) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
Automatics.AutomaticRepair.ItemRepair.Repair (Player player) (at <8c72363294194c5aa81f46a90142a1c5>:0)
Automatics.AutomaticRepair.Module.OnPlayerFixedUpdate (Player player, System.Single delta) (at <8c72363294194c5aa81f46a90142a1c5>:0)
(wrapper dynamic-method) Player.DMDPlayer::FixedUpdate(Player)

Either disable Automatics #7 Automatic Repair or uninstall BRT 0.4.0 and the exceptions will stop hapenning.

What happened?

No exceptions flooding the console window.

Steps to reproduce the bug

  1. Install Automatics 1.4.0.
  2. Install Build Restriction Tweaks 0.4.0.
  3. Build a Workbench in a Troll Cave (might want to kill the Troll First).
  4. Enjoy the red exceptions text flying by in the console window.

Logs and screenshots

image

image

The second screenshot only has 2 exceptions because I disabled Automatics #7 Automatic Repair. If I don't do that the exception continue and ultimately impact gaming performance.

Object reference not set to an instance of an object

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.5.0

What happened?

Install Item Drawers and build one (need 10 fine wood) drop items and:

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
Automatics.Patches.Container_Awake_Postfix (Container __instance, ZNetView ___m_nview) (at <0b650f0721424348b7292b3ac996ec5b>:0)
(wrapper dynamic-method) Container.DMDContainer::Awake(Container)
UnityEngine.Object:Instantiate(GameObject)
Player:DMDPlayer::SetupPlacementGhost(Player)
MonoMod.Utils.DynamicMethodDefinition:TrampolinePlayer::SetupPlacementGhost?-1485527040(Player)
PlanBuild.Blueprints.BlueprintManager:Player_SetupPlacementGhost(orig_SetupPlacementGhost, Player)
MonoMod.Utils.DynamicMethodDefinition:HookPlayer::SetupPlacementGhost?-79421824(Player)
MonoMod.Utils.DynamicMethodDefinition:TrampolinePlayer::SetupPlacementGhost?-1281691648(Player)
PlanBuild.Plans.PlanManager:Player_SetupPlacementGhost(orig_SetupPlacementGhost, Player)
MonoMod.Utils.DynamicMethodDefinition:HookPlayer::SetupPlacementGhost?693326208(Player)
Player:UpdateAvailablePiecesList()
Player:DMDPlayer::SetPlaceMode(Player, PieceTable)
Humanoid:SetupEquipment()
Humanoid:DMDHumanoid::EquipItem(Humanoid, ItemData, Boolean)
MonoMod.Utils.DynamicMethodDefinition:TrampolineHumanoid::EquipItem?1544854528(Humanoid, ItemData, Boolean)
PlanBuild.Blueprints.BlueprintManager:Humanoid_EquipItem(orig_EquipItem, Humanoid, ItemData, Boolean)
MonoMod.Utils.DynamicMethodDefinition:HookHumanoid::EquipItem?-1227717376(Humanoid, ItemData, Boolean)
Player:ToggleEquipped(ItemData)
Humanoid:UseItem(Inventory, ItemData, Boolean)
Player:DMDPlayer::UseHotbarItem(Player, Int32)
Player:DMDPlayer::Update(Player)

List of Mods required to reproduce the bug

Item Drawers 0.5.6

Steps to reproduce the bug

after building one and noting the exception, just drop some items that should go to an item drawer and you will the exception above.

File attachments

No response

Static-mapped pins disappear immediately upon creation

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.4.5

What happened?

Hej! I have auto-pinning of static objects enabled (blueberries, thistle, copper deposit, etc.), and have had for a couple months. I also have the option enabled to NOT save them, since I enjoy being able to click on the ones I want to save. Historical gameplay is: I approach a copper deposit, a static pin is added, and if I do not click it, when I walk away, the pin goes away, but if I do click it, it stays there even if I walk away.
Since updating today, static pins are disappearing immediately upon being created. Default creation time for the pins is 0.25s, so there is quite a bit of flickering when it comes to creating nearby pins because they will be created ever quarter second and then disappear a quarter second later or similar... and repeat indefinitely. There is no time to click it to save the pin like I'm used to.
I can turn "Save Static Object Pins" on, and it will save them indefinitely (not desired for me). But as soon as I turn that option back off, the bug behavior starts again.
Thanks for looking into this!

List of Mods required to reproduce the bug

Automatics

Steps to reproduce the bug

  1. Have "Automatic Mapping" enabled.
  2. Have "Static Object Search Range" >0.
  3. Have "Allow Pinning Flora/Mineral" enabled.
  4. Have "Save Static Object Pins" disabled.
  5. Get close to something that should be pinned like a copper deposit.
  6. Watch the pins get created and immediately destroyed.

File attachments

No response

Automatic Door toggle keybind can only disable, won't re-enable

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Pressed Automatic Door enable/disable keybind and it disables as expected but pressing it again does nothing. If I also run the configuration manager mod I can re-enable it that way and use the keybind to disable it again, but again not re-enable.

Steps to reproduce the bug

  1. Enable Automatic Door (optionally, observe it working as intended)
  2. Bind a key to the Automatic Door enable/disable toggle
  3. Press keybind for Automatic Door enable/disable toggle (observe disable message and non-auto doors)
  4. Press keybind again, note lack of enable message and still non-automatic doors

Logs and screenshots

No response

[ Title that succinctly describes the bug ]

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.2

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

游戏版本更新,模组无法使用

What happened?

游戏版本更新,模组无法使用

Steps to reproduce the bug

游戏版本更新,模组无法使用

Logs and screenshots

No response

Automatic pickup deletes Surtling cores

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.4.8

What happened?

I was on my friend's server we both have Automatics installed but when we got near the surtling cores inside a dungeon, instead of picking it up, the item is dissapearing.

List of Mods required to reproduce the bug

Automatics

Steps to reproduce the bug

  1. Enable auto pickup with default configuration
  2. Enter dungeon
  3. Go near a surtling core
  4. Check that the item is picked up but it's not in the inventory

File attachments

No response

Option request: Auto Store only in containers that already have 1+ of the item

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.3

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Not a bug, obviously, but a feature request. I'd like a toggle that would only allow stations to auto store in containers that already contain at least one of the item. If none are found, drop the output on the ground.

That would really help organize the output and reduce the randomness. For example, right now I have a couple of smelters outputting to multiple chests nearby. I just want them all to go into a single chest. I realize I can reduce the radius for pickup and not have as many chests near, but many other "auto store" mods have this feature and it's very handy and something I've come to rely on.

Steps to reproduce the bug

  1. Have multiple machines producing items within range of multiple chests.
  2. Items go into multiple chests rather than a single chest.

Logs and screenshots

No response

Config - double negatives & Config Manager

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.0

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Not exactly a bug as such, but double negatives seem to confuse Config Manager. I was setting auto pickup to FALSE (in config manager) but it ended up being "disable = false" instead slightly more expected "enable = true" for enabling the feature. I've ended up being so annoyed by autopickup (kept picking up stuff mid fight overburdening me), until I opened conf in text editor and noticed that.

Anyway, since you suggest using config manager you might look into clearing that up a bit to make it little bit easier to understand.

Steps to reproduce the bug

Configure individual modules on/off using Config Manager

Logs and screenshots

No response

Duplicate Pin's being created on top of each other.

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.4

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

I've noticed that Map Pins are duplicating when I leave an area and then return, it puts a new Pin on top of the current Pin with exactly the same name.
Obviously this only happens when 'Save Static Object Pins' is Enabled.
For areas I frequent a lot I've seen 7 or 8 Pin's over top of each other and the Pin and Text seem to have like a Drop Shadow effect on them. You can 'Right Click' remove the overlapping Pins but it shouldn't be stacking up like this.

Steps to reproduce the bug

  1. Enter an area where a Static Object would be Pinned.
  2. Leave the area
  3. Return to the same area and a new Pin will be created over top of the previous one.

Logs and screenshots

No response

Location pinning - performance drop

Location pinning range set to 1 or more causes drop of FPS to unplayable levels.

Other pinning options (even dynamic!) works fine and performance is great, but as soon as location pinning is enabled, game drops to like 2 FPS.

After Valheim patch 0.217.14, Automatics has broken the game

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.4.8

What happened?

When you start the game, a console opens that cannot be closed

List of Mods required to reproduce the bug

Automatics

Steps to reproduce the bug

  1. Install Automatics
  2. Start the game
  3. ???
  4. Don't play game

File attachments

Screenshot_1

Automatic repair causes frame stutter

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.4

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

When using the automatic repair there is a brief frame stutter when moving. When automatic repair is off the animation remains smooth. I had only item repair on, not piece repair. I had to disable automatic repair because it was causing to much lag.

Steps to reproduce the bug

Run the mod with automatic repair enabled.

Logs and screenshots

No response

Beehives not working

I can't seem to get beehives to work. I place a chest next to them, I checked the config file. It should be storing, but they won't.

EDIT: Had to re-configure the config a few times and then it loaded the range setting. I don't know how it broke for me but I don't think it was a bug in the mod, just something in my install.
My beehives are now correctly dumping into a chest.

Automatic collection is not compatible with collection skills

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.4.3

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

Automatics
Foraging

What happened?

Auto collection does not trigger skills

Steps to reproduce the bug

Auto collection does not trigger skills

Logs and screenshots

No response

Cannot Auto-pin Locations on Server

There seems to be a server-specific bug with auto-pinning locations such as dungeons, mountain-caves, crypts, etc...
These locations simply do not pin while logged into a server. They work fine in single-player. This should be easily replicable but please let me know if you need any additional info.

Thank you,

Ashlands update some problems

Is there an existing issue for this bug?

  • I have searched the existing issue

Mod version

1.5.1

What happened?

With the new Ashlands update I have noticed some bugs with firing and crafting the coal furnace and kiln.
The coal furnace uses wood from the nearby chest, but it is not added as fuel, so nothing is produced.
The kiln has the same problem nothing is added as material.
In addition, pinning burial chambers, troll caves, etc. no longer worked.

List of Mods required to reproduce the bug

Automatics 1.5.1

Steps to reproduce the bug

Patch to 0.218.15 Ashlands

File attachments

No response

[Question] Custom Icon pack as a mod.

Hi there Eideehi!
So, if I was to make a pack of icon to use with your mod's automatic pinning. Is there a way that I could make it work with the mod just by subscribing to the "icon pack mod" in thunderstore?
Not sure if I was clear enough so:
Basically:
Make a mod that consists of .png's and a json.
Upload to thuunderstore with your's as dependency.
People who download my mod will have those icons used.

Thanks in advance. And thanks for the awesome mod!

Automatic processing failing

Is there an existing issue for this?

  • I have searched the existing issues

Mod version

1.3.1

Is this a bug caused by this mod alone?

The bug was reproduced with this mod alone

List of mods to reproduce bug

No response

What happened?

Automatic processing and refueling not working, floods log with error messages.

Steps to reproduce the bug

  1. Place item covered by mod.
  2. Wait.
  3. (So far tried fireplace, hearth, cooking station, standing wooden torch, charcoal kiln)

Logs and screenshots

Player-prev.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.