tModLoader Mod Helpers

your new mod filter layout is a little... Cramped
https://imgur.com/a/nfBAMIs
nfBAMIs

Why is everything so tightly packed, there's plenty of room on a 1080P res for a little spreading out.
 
Because the UI is built for the smallest Terraria resolution, which is 800x600. I suppose I could move those buttons to make them a bit less awkward, though.
Honestly, Terraria's own UI isn't even built for 800x600 anymore. Even at 1366x768, a pretty decent resolution, the minimap and equipment UI overlap annoyingly at 100% UI scale (which of course is the minimum supported without hacky config edits).
And really... Do people play Terraria on 800x600? The field of view would be so tiny, everything so blurry and hard to see. If you can't run a 32 bit pixel game at higher than 800x600 then your computer really needs even a cheap upgrade. Not to mention if you have to run Terraria on that resolution chances are you won't be using mods.

I'd say focus on 1280x720 and up. Gives you a lot more room, and is also far more reasonable. 16:9 aspect ratio should really be the new standard, I don't even think 4:3 monitors are made anymore. And they're only getting wider and wider.
 
Honestly, Terraria's own UI isn't even built for 800x600 anymore. Even at 1366x768, a pretty decent resolution, the minimap and equipment UI overlap annoyingly at 100% UI scale (which of course is the minimum supported without hacky config edits).
And really... Do people play Terraria on 800x600? The field of view would be so tiny, everything so blurry and hard to see. If you can't run a 32 bit pixel game at higher than 800x600 then your computer really needs even a cheap upgrade. Not to mention if you have to run Terraria on that resolution chances are you won't be using mods.

I'd say focus on 1280x720 and up. Gives you a lot more room, and is also far more reasonable. 16:9 aspect ratio should really be the new standard, I don't even think 4:3 monitors are made anymore. And they're only getting wider and wider.
I presume the reason for Terraria's minimum resolution has something to do with mobile compatibility. Also, there's an argument for playing at the small resolutions for challenge reasons.

Otherwise, I wouldn't mind using additional UI space for more tags and such, and may consider that eventually.
 
Last edited:
Terraria has a maximum resolution simply because relogic had to handle enemies spawning/despawning off screen without them simply blinking into existence.

But that's the maximum res
 
I presume the reason for Terraria's minimum resolution has something to do with mobile compatibility. Also, there's an argument for playing at the small resolutions for challenge reasons.

Otherwise, I wouldn't mind using additional UI space for more tags and such, and may consider that eventually.
That would make sense, except that the version of Terraria running on mobile devices is not even the same one as PC. Challenges I suppose I can understand, although the zoom feature exists and could be used for that now.
 
Every time i open the mod menu in world it wont let me click on anything then when i exit using escape everytime i click it opens the menu basically softlocking me
 
Hey. I am having a problem when trying to use Mod Helpers with Wormhole mod and Rewards mod. It says this :
Object reference not set to an instance of an object.
at Rewards.RewardsMod.<LoadConfigs>b__19_0()
at HamstarHelpers.Services.Promises.Promises.FulfillPostModLoadPromises()
at HamstarHelpers.ModHelpersMod.PostLoadAll()
at HamstarHelpers.ModHelpersMod.CheckAndProcessLoadFinish()
at HamstarHelpers.ModHelpersMod.PostAddRecipes()
at Terraria.ModLoader.RecipeHooks.PostAddRecipes()

I use PC Windows 10 and use tmodloader v0.10.1.5
 
Hey. I am having a problem when trying to use Mod Helpers with Wormhole mod and Rewards mod. It says this :
Object reference not set to an instance of an object.
at Rewards.RewardsMod.<LoadConfigs>b__19_0()
at HamstarHelpers.Services.Promises.Promises.FulfillPostModLoadPromises()
at HamstarHelpers.ModHelpersMod.PostLoadAll()
at HamstarHelpers.ModHelpersMod.CheckAndProcessLoadFinish()
at HamstarHelpers.ModHelpersMod.PostAddRecipes()
at Terraria.ModLoader.RecipeHooks.PostAddRecipes()

I use PC Windows 10 and use tmodloader v0.10.1.5

im getting the same problem with rewards and extensible inventory
 
Update to Mod Helpers v4.2.3.1. Sorry, this error is sudden and arose mysteriously.
 
Last edited:
got a lot of problem with this mod
0:000:00079 - 000047.96 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 80 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00080 - 000047.98 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 81 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00081 - 000047.99 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 82 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00082 - 000048.01 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 83 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00083 - 000048.02 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 84 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00084 - 000048.04 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 85 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00085 - 000048.07 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 86 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)

what is it? when i search for something with where is my item : crash
when i just want to do a screenshot with the main vanilla option : crash

what is it? :(
 
got a lot of problem with this mod
0:000:00079 - 000047.96 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 80 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00080 - 000047.98 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 81 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00081 - 000047.99 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 82 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00082 - 000048.01 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 83 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00083 - 000048.02 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 84 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00084 - 000048.04 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 85 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00085 - 000048.07 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 86 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)

what is it? when i search for something with where is my item : crash
when i just want to do a screenshot with the main vanilla option : crash

what is it? :(
Mod Helpers doesnt affect Where Is my Item.

Is that your full log by the way? I need more context. Any more log entries?
 
i think it's EXPEDITION mod then..

à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

0:000:00000 - 000038.32 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 1 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00001 - 000038.53 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 2 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00002 - 000038.58 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 3 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00003 - 000038.60 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 4 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00004 - 000038.62 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 5 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00005 - 000038.69 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 6 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00006 - 000038.71 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 7 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00007 - 000038.74 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 8 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
 
i think it's EXPEDITION mod then..

à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Exception capturée silencieusement: La référence d'objet n'est pas définie à une instance d'un objet. à Expeditions.Items.ItemRewardPool.GenerateRewardPool() à Terraria.ModLoader.ModCompile.<>c.<ActivateExceptionReporting>b__15_0(Object sender, FirstChanceExceptionEventArgs exceptionArgs)
à Expeditions.Items.ItemRewardPool.GenerateRewardPool()
à Expeditions.Expeditions.AddRecipes()
à Terraria.ModLoader.RecipeHooks.AddRecipes()
à Terraria.Recipe.SetupRecipes()
à Terraria.ModLoader.ModLoader.do_Load(Object threadContext)
à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
à System.Threading.ThreadPoolWorkQueue.Dispatch()
à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

0:000:00000 - 000038.32 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 1 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00001 - 000038.53 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 2 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00002 - 000038.58 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 3 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00003 - 000038.60 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 4 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00004 - 000038.62 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 5 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00005 - 000038.69 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 6 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00006 - 000038.71 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 7 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
0:000:00007 - 000038.74 ~!HamstarHelpers.LoadHelpers.IsWorldSafelyBeingPlayed - StartupDelay: 8 (120?), IsClientPlaying_Hackish: True (true?), IsSynced: True (true?)
Some mods aren't that good with localization. Admittedly, not all of mine are as well as they could be, but I try to address every issue I can.

Can you give me your (enabled) mod list as well? Do you have a crash log, also?
 
Some mods aren't that good with localization. Admittedly, not all of mine are as well as they could be, but I try to address every issue I can.

Can you give me your (enabled) mod list as well? Do you have a crash log, also?


Begin cannot be called again until End has been successfully called.
at Microsoft.Xna.Framework.Graphics.SpriteBatch.Begin(SpriteSortMode sortMode, BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState, RasterizerState rasterizerState, Effect effect, Matrix transformMatrix)
at Terraria.Main.RenderWater()
at Terraria.Main.do_Draw(GameTime gameTime)
at Terraria.Main.DoDraw(GameTime gameTime)


i got too many mod to list here ... i think its maybe a out of memory issue but it didnt crash often :
i got thorium , calamity, exodus, your mod, antiasis, spirit, and many many more...
 
Begin cannot be called again until End has been successfully called.
at Microsoft.Xna.Framework.Graphics.SpriteBatch.Begin(SpriteSortMode sortMode, BlendState blendState, SamplerState samplerState, DepthStencilState depthStencilState, RasterizerState rasterizerState, Effect effect, Matrix transformMatrix)
at Terraria.Main.RenderWater()
at Terraria.Main.do_Draw(GameTime gameTime)
at Terraria.Main.DoDraw(GameTime gameTime)


i got too many mod to list here ... i think its maybe a out of memory issue but it didnt crash often :
i got thorium , calamity, exodus, your mod, antiasis, spirit, and many many more...
Ah. The infamous spritebatch exception. That's one's hard to decipher, and obnoxiously common for most modders.

You can find your list of enabled mods in the Documents/My Games/Terraria/ModLoader/Mods folder. Also, try disabling mods a few at a time until the issue goes away, and report which mod you think causes the issue. Keep in mind there's a chance 2 or more mods being together can cause an issue.
 
Ah. The infamous spritebatch exception. That's one's hard to decipher, and obnoxiously common for most modders.

You can find your list of enabled mods in the Documents/My Games/Terraria/ModLoader/Mods folder. Also, try disabling mods a few at a time until the issue goes away, and report which mod you think causes the issue. Keep in mind there's a chance 2 or more mods being together can cause an issue.
ok got it. thanks a lot :)
 
Back
Top Bottom