tModLoader Mod Helpers

Discussion in 'Released' started by hamstar, Nov 19, 2017.

  1. hamstar

    hamstar Steampunker

    [​IMG]
    Mod Helpers
    v3.1.0.4


    Overview

    This is a library/helper mod that (nearly) all of my other mods use, now with a thread of its own. It is an eclectic (and always growing) collection of assorted helper functions and utilities available freely for use. To list a few:
    See the wiki page for specific feature descriptions. Contributions welcome.



    As of v1.2.0, this mod now comes with an in-game control panel. You can view all loaded mods, change their config files (if they're enabled for doing so) in-game, or even submit feedback or bug reports for specific mods! If you want any other control panel options to be added, let me know.

    As of v1.2.6, a mod locking button has been added to the control panel. With this, all currently active mods on the current world are locked; you cannot play that world without all of these mods active.

    *NEW* As of v3.0.0, mod tags have been added. You may supply them for any given mod, or use them to search existing mods in the browser. Mods may also supply a recommendations list of their own (see below).


    For modders
    New to v1.2+ is the ability to enable github issues and edit config files in-game for any mods that support it. No mod dependency required!
    • New (v3.0): To show a list of recommended mods with your mod: Include at the bottom of your mod's description.txt file the following lines, formatted as such (limit 5 mods; use short strings):
      Code:
      Mod recommendations:
      SSC = Prevents players modifying their character (or gear) outside of a server.
      HEROsMod = General server administration stuff.
      Nihilism = Allows removing specific items or NPCs from the game.
      
      Be sure to use the mod's file name; not its display name (click Open Mods Folder button in the mods list to see mod names).
    • To receive in-game issue reports from players: Your Mod overriding class must include the following properties (with your respective github user name and your mod's project name):
      Code:
      public static string GithubUserName { get { return "hamstar0"; } }
      public static string GithubProjectName { get { return "tml-hamstarhelpers-mod"; } }
      
    • To allow opening and reloading your mod's config file in-game: You'll need to include the following in your Mod overriding class (adjusted accordingly):
      Code:
      public static string ConfigFileRelativePath {
         get { return "Mod Configs/My Mod's Config.json"; }
      }
      public static void ReloadConfigFromFile() {
         // Define implementation to reload your mod's config data from file
      }
      
    • To allow resetting your mod's config file to default settings:
      Code:
      public static void ResetConfigFromDefaults() {
        // Define implementation to reset your mod's config data to default
      }
      
    Full source code available.

    [​IMG]
     
    Last edited: Nov 6, 2018
  2. hamstar

    hamstar Steampunker

     

    Attached Files:

    Last edited: Oct 28, 2018
  3. ReusableLime20

    ReusableLime20 Slime Collector

    I can't seem to close the control panel, any help?
     
  4. hamstar

    hamstar Steampunker

    It should be closeable by pressing Escape (same key that accesses your inventory). Did you click on any of the text input fields?

    If none of these work, please tell me what mods your using, what your log.txt output contains, and whether this occurs from the start of the game, or only after you activate the panel.
     
    Last edited: Jan 2, 2018
  5. ReusableLime20

    ReusableLime20 Slime Collector

    Well, I never clicked on any of the input fields, but my inventory key was switched to 'F' (for faster access). Also, is there any way to move the button to open it, or hide it all-together? It would normally be helpful, but it gets slightly in the way of my UI due to me using the Dual-Wielding mod.
    Mod list:

    • The Antiaris
    • Unleveled Mod
    • Loot Bags
    • Leveled Mod
    • Boss Checklist
    • Enemy Affixes
    • Hamstar's Helpers
    • Wormholes
    • Cheat Sheet
    • Better Buffs
    • Dynamic Invasions
    • Wing Slot
    • Evil Swapper
    • Magic Storage
    • Material Swapper
    • Painted Hills
    • Dowsing
    • Alternate Swapper
    • Accessory Swapper
    • Item Checklist
    • More Chest Loot
    • MoreAccesories
    • Boss Expertise
    • Banner Bonanza
    • WorldGen Previewer
    • Colored Damage Types
    • Shorter Respawn Time
    • Yet Another Boss Health Bar
    • Wireless
    • Helpful NPCs
    • Double-Player Example
    • Boss Materials Plus
    • Fun Death Sounds
    • Drop Your Weapon
    • Mod Settings Configurator
    • Expeditions Content Pack + Base Mod
    • RPG Classes
    • Dual Wielding
    • Antisocial
    Thanks for helping!
     
    hamstar likes this.
  6. hamstar

    hamstar Steampunker

    Since a fair number of people use this mod already (and to come), would it make sense to use this mod to generate a list of live servers for a server browsing website?

    The list would include all mods running, the list of players, player stats, world size, world stats (progression, time spent, hardmode, corruption-only, etc.), server latency, and maybe other goodies like player K/D ratios, player latency, and any notable mod settings (e.g. Revengeance mode on, Lunatic duration, etc.)
     
    Last edited: Feb 7, 2018
  7. SickBoy

    SickBoy Terrarian

    Sounds really useful (I'm always in favor of website-driven lists and databases), though it seems like the overhead might be killer even on a beefy dedicated web server. How were you thinking of having the info updated? Or were you going to make it truly live where every visit is pulling info from active servers?

    Or did you mean that it'd generate a site specifically for the server ops to use, rather than a mega-database site you'd host?
     
    Last edited: Feb 7, 2018
  8. hamstar

    hamstar Steampunker

    A hosted site will exist with a REST API that the mod calls every 15 or so seconds while running on a server to update the server's status on the site.

    It'll be up to them to connect to the servers in-game.
     
    Last edited: Feb 7, 2018
  9. SickBoy

    SickBoy Terrarian

    Should work pretty well then. It also seems like it could be expanded in all kinds of really interesting ways, which is always a good thing!

    Is there any chance you'd be willing to supply public JSON output for some of the data? I'd love to integrate some of it into my tModLoader: Browserfied project. What exactly that would include, I'm not entirely sure. Off the top of my head I can think of listing servers that use a particular mod, or at least showing the amount that do with a link to a page on your site that effectively does the same thing.
     
  10. hamstar

    hamstar Steampunker

    In getting ready for the server browser, I'm now wrapping up v1.4.0 (part 1, part 2). I'd appreciate it if someone could help test this version by hosting a server with active players with this running. Please report any issues via. the issue reporter, or else posting Logs.txt to this thread.

    Edit: See head post for latest version.
     

    Attached Files:

    Last edited: Mar 13, 2018
    FiveSix78 likes this.
  11. CoronaKing

    CoronaKing Steampunker

    I'm getting immediate crashes when I load the most current version of this. (I eliminated all other recently updated via elimination) Maybe something to do with checking updated mods in the menu?
     
    hamstar likes this.
  12. hamstar

    hamstar Steampunker

    Could you tell me if your Logs.txt report anything? I'll be patching this shortly to try to catch a few of these problems.
     
  13. Geniusenie

    Geniusenie Terrarian

    I am also having these problems. The second a world loads and I pop in-game, it hangs and gives a "Terraria.exe has stopped working" crash.
    Here are the logs.
    0:000:00007 - 000223.60 UNHANDLED crash? True
    Sender: Name:Terraria.exe
    There are no context policies.
    Message: System.NullReferenceException: Object reference not set to an instance of an object.
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0()
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__1(IDictionary`2 versions, Boolean found) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\ControlPanel\ControlPanelUI_Issue.cs:line 64
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 21
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Unexpected character encountered while parsing value: <. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    0:000:00008 - 000244.03 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.03 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.04 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.05 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.05 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.06 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.07 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.07 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.08 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.08 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.13 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    0:000:00008 - 000244.13 Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
    at Newtonsoft.Json.JsonTextReader.ParseValue()
    at Newtonsoft.Json.JsonTextReader.Read()
    at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
    at Newtonsoft.Json.Linq.JObject.Parse(String json)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 18
    Silently Caught Exception: Object reference not set to an instance of an object. at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0()
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__1(IDictionary`2 versions, Boolean found) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\ControlPanel\ControlPanelUI_Issue.cs:line 64
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 21
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Object reference not set to an instance of an object. at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0()
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__1(IDictionary`2 versions, Boolean found) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\ControlPanel\ControlPanelUI_Issue.cs:line 64
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 21
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Object reference not set to an instance of an object. at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0()
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__1(IDictionary`2 versions, Boolean found) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\ControlPanel\ControlPanelUI_Issue.cs:line 64
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 21
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

    Silently Caught Exception: Object reference not set to an instance of an object. at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0() at Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__0()
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass3.<GetLatestKnownVersion>b__1(IDictionary`2 versions, Boolean found) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\ControlPanel\ControlPanelUI_Issue.cs:line 64
    at HamstarHelpers.WebRequests.ModVersionGet.<>c__DisplayClass8.<RetrieveLatestKnownVersions>b__5(String output) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NetHelpers\NetHelpers_Requests.cs:line 21
    at HamstarHelpers.NetHelpers.NetHelpers.<>c__DisplayClass9.<MakeGetRequestAsync>b__8(Object sender, RunWorkerCompletedEventArgs args) in c:\Users\Spinach\Documents\My Games\Terraria\ModLoader\Mod Sources\HamstarHelpers\Helpers\NPCHelpers\NPCHelpers_Obsolete.cs:line 10
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
    at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    at System.Threading.ThreadPoolWorkQueue.Dispatch()
    at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    "AlchemistNPC",
    "BossChecklist",
    "Fargowiltas",
    "FKBossHealthBar",
    "HamstarHelpers",
    "imkSushisMod",
    "Infinity",
    "LootBags",
    "Luiafk",
    "MagicStorage",
    "MaxStackPlus",
    "MoreAccessories",
    "MorePotions",
    "RecipeBrowser",
    "ReducedGrinding",
    "SimpleAutoChests",
    "ThoriumMod",
    "WMITF",
    "Wormholes"
     
    hamstar likes this.
  14. Angellus Mortis

    Angellus Mortis Terrarian

    JSON parse error inside of the Web requests leading to a null reference error. I do not have the logs anymore, but that was definitely the error. It probably has to do with the fact that URL you are using to check for mod version updates is giving an error:

    https://script.googleusercontent.co...u9Yn2NR&lib=MLDmsgwwdl8rHsa0qIkfykg_ahli_ZfP5

    > Limit Exceeded: DriveApp. (line 6, file "Code", project "tModLoader Mod Browser Data")
     
    hamstar likes this.
  15. hamstar

    hamstar Steampunker

    I'm just chipping away at the errors thus far. I added a semi-major change in preparation for an upcoming server browser, but my time is being divided the last few days, so progress is a bit choppy.

    Tell me if the new v1.4.0.6 improves things.
     
    Last edited: Mar 15, 2018
  16. CoronaKing

    CoronaKing Steampunker

    Worlds load, but takes them a few extra seconds. I'll test it a bit later on, will update if anything else happens
     
    hamstar likes this.
  17. CoronaKing

    CoronaKing Steampunker

    It seems to pause for 5 seconds or so when I first start up and load up a world. After that, I can exit a world and load it back in just fine, without the pause. Just seems to pause when you first load a world after starting the program.
     
    hamstar likes this.
  18. hamstar

    hamstar Steampunker

    Should be fixed.
     
  19. Trenyc

    Trenyc Terrarian

  20. hamstar

    hamstar Steampunker

    Done
     
    Trenyc likes this.