tModLoader Server Sided Characters

The mod is great! Got a few issues with it though.

-The remembered leave pos setting is client sided, no matter what you set it to on the server, the players can just change it in the config on their side and it overrides the server setting. Unless this is intended? (Oversized world)

-When rememberleavepos is on, I saw sometimes characters spawning insides blocks, making them get killed (Oversized world)

-A few server-sided mods with client-sided settings are never having their settings saved. I remember encountering the issue with:
Dual Wielding (Item you put in the slot isn't being saved)
ExperienceAndClasses (Position of the UI isn't saved)

-ExperienceAndClasses can grant you immunity to debuffs, if you use those classes, you can bypass the frozen status of the login.
 
Hmm, the leave position isn't supposed to be read on the client side. Also it's apparently not supposed to currently work on oversized worlds too, as reported earlier.

The players spawning in blocks is a server problem. Basically they teleport before the server sends the tiles so they can fall from 1 tile to a huge amount. I will see about freezing a player in place until the tiles are loaded.

I never tested those mods, but I'll look into them.
 
Yeah I read that, hence I included the oversized part, since I'm not sure if oversized is breaking it.

Thanks for looking into it and the quick response!
 
Hey there! I really love the concept of this mod as I'm trying to set up a persistent server for people to play on. Do you have any plans to support oversized worlds?
 
Not sure if you read my Discord messages, so I will post here as well.
ItemChecklist seems to cause an error with SSC all the time, when it is enabled on dedicated server.

upload_2019-8-5_1-46-42.png
 
Nice :) - THANKS
... but one question remains (have not found an info in the changelogs ..)
It is now compatible with Oversized Worlds ? [ The character position save/restore ]
 
ahh .... not bad ... ;)
...but would be nice to have - as on servers the option to restore the last position after the logging-out is a handy feature ....
 
Hey, im hosting a dedicated server for a bunch of friends, and we have encountered an error with SSC's loading of moddata:

System.NullReferenceException: Object reference not set to an instance of an object.
at RecipeBrowser.RecipeBrowserPlayer.OnEnterWorld(Player player) in RecipeBrowserPlayer.cs:line 143
at SSC.PlayerModData.Clear(Player player, String modID, String modPlayerName) in SSC\PlayerModData.cs:line 118
at SSC.PlayerModData.ClearModData(Player player, String modID, String modPlayerName, Boolean forceClear) in SSC\PlayerModData.cs:line 82
at SSC.PlayerModData.Load(Player player, String UUID) in SSC\PlayerModData.cs:line 69
at Terraria.ModLoader.ModNet.HandleModPacket(BinaryReader reader, Int32 whoAmI, Int32 length)
at Terraria.MessageBuffer.GetData(Int32 start, Int32 length, Int32& messageType)
at Terraria.NetMessage.CheckBytes(Int32 bufferIndex)
at TerrariaOverhaul.MethodSwapping.NetThreadThrottling.<>c.<ServerLoop>b__1_2()
at System.Threading.Tasks.Task.Execute()
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.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler scheduler, Boolean waitForCompletion)
at Terraria.Netplay.OnUpdate()
at Terraria.Main.DoUpdate(GameTime gameTime)
at Terraria.Main.Update(GameTime gameTime)
at Terraria.Main.DedServ()
at Terraria.Program.LaunchGame_()
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.FNALaunch.Main(String[] args)

[04:34:04] [1/INFO] [SSC]: [SSC] Error: Failed to clear RecipeBrowser modData for fa
[04:34:04] [1/INFO] [SSC]: System.NullReferenceException: Object reference not set to an instance of an object.
at RecipeBrowser.RecipeBrowserPlayer.OnEnterWorld(Player player) in RecipeBrowserPlayer.cs:line 143
at SSC.PlayerModData.Clear(Player player, String modID, String modPlayerName) in SSC\PlayerModData.cs:line 118
[04:34:04] [1/WARN] [tML]: Silently Caught Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at SSC.DALib.Functions.GetCurrentLoadingMod() in SSC\DALib\Functions.cs:line 22
at SSC.DALib.Logger.FatalError(String message, Exception e, Int32 playerID, String modPrefix, Boolean loadError) in SSC\DALib\Logger.cs:line 59
at SSC.PlayerModData.Clear(Player player, String modID, String modPlayerName) in SSC\PlayerModData.cs:line 118
at SSC.PlayerModData.ClearModData(Player player, String modID, String modPlayerName, Boolean forceClear) in SSC\PlayerModData.cs:line 82
at SSC.PlayerModData.Load(Player player, String UUID) in SSC\PlayerModData.cs:line 69
at Terraria.ModLoader.ModNet.HandleModPacket(BinaryReader reader, Int32 whoAmI, Int32 length)
at Terraria.MessageBuffer.GetData(Int32 start, Int32 length, Int32& messageType)
at Terraria.NetMessage.CheckBytes(Int32 bufferIndex)
at TerrariaOverhaul.MethodSwapping.NetThreadThrottling.<>c.<ServerLoop>b__1_2()
at System.Threading.Tasks.Task.Execute()
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.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler scheduler, Boolean waitForCompletion)
at Terraria.Netplay.OnUpdate()
at Terraria.Main.DoUpdate(GameTime gameTime)
at Terraria.Main.Update(GameTime gameTime)
at Terraria.Main.DedServ()
at Terraria.Program.LaunchGame_()
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.FNALaunch.Main(String[] args)

The error seems to move to another mod if we remove the current mod (RecipeBrowser in this case).
Any help would be great! Thanks.
 
Not sure if you're still actively working on this mod, but I'm getting errors when this mod and Itemchecklist is enabled.
 
I am still working on this mod and the issue with Item Checklist and Recipe Browser is known. It shouldn't break anything so it's fine to ignore for now.
Though if it's preventing the mod from actually loading, that means I forgot to publish the version that doesn't prevent it from loading.
 
Is there a guide on how to configure this to run on a server? I see the Server Sided Characters: Server Config page when connected to my server, but it rejects any changes I make, and I can't seem to find a config file in the install or mods folders.
 
I didn't realize that the Mod Config doesn't save default values after I updated the mod.
The reason why you can't edit it in game is there is currently no checks or anything to ensure the user is authorized, so anyone could edit the config when that's not something any server admin would want.
The next version will hopefully display default config values in the config file and will also contain a field where you put the Unique ID of a player who you'd want to edit the config in game, typically the server admin. I may even add a bunch of server console commands to edit configs too, but that'll take more time to write.
 
Is there some place the mod is looking for a config file? If so, do you have a default config file I can put there and edit?
 
Is there a way to distribute out the server-sided-characters to individual players so they can use them in singleplayer?
 
Back
Top Bottom