Code Monkey home page Code Monkey logo

quantumhangar-eol-'s People

Contributors

buttheadbob avatar casimir255 avatar dbenson24 avatar emawind84 avatar katvolts avatar lumbyjack avatar ninjanomnom avatar owendb1 avatar spacebuilder2020 avatar stalkr avatar thecrunchy avatar vash1127 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

quantumhangar-eol-'s Issues

Using !hangar save while seating in the grid leads to spectator mode

Using !hangar save while seating in the grid leads to spectator mode

While granted they can only explore grids within sync distance, it can still be a bit troublesome. is there a way we can ensure they are ejected from the grid (or not allow saving while seated in a grid); or just force kill them if they're in a grid when they save?

Hangar load does not always trigger gridbackup it seems

Hangar load does not always trigger gridbackup it seems

Player loaded these 4 grids a few minutes before a crash (so they were lost in the world as expected); they had been manually imported several weeks ago with hangar sync

 [34] - #06-AngryBee_08.30.2020_13.11.04
 [35] - #07-AngryBee_08.30.2020_13.24.57
 [36] - #08-AngryBee_08.30.2020_13.35.24

But there's no Gridbackup triggered for them anywhere

Now here's where it gets really fun. I dug into the daily backups and grabbed copies of these grids.

Looking at lots of other blueprints from other peoples garages; they all have this value set:
0

For whatever reason, #5 bee has:
90138397116871689
and 6,7,8 have
90138402485211145

Those aren't even SteamID's...Searching those numbers in the Sandbox gets 0 hits at all. I have no fucking clue where they've come from but I suspect whatever it is is what caused the backups not to work?
All blocks with ownership are properly marked as owned by the players IdentityID...I don't even know what to make of this hah. These grids were only ever saved by Quantum Hangar (never any other garage type system); so I have no clue what to do about this

Grids still sometimes spawn inside each other on load

It's a lot more rare after the changes you made to allow for more room; but every so often there's grids it just won't detect and it loads them on top of each other. Logs don't give anything beyond normal "everything is fine" messages

[Crash] QH crashed server during Autohangar operation

Normal autohangar due to inactivity; server went down

20:42:23.0891 [WARN]   Hangar.AutoHangar: AutoHangar: Getting Players!
20:42:23.0891 [WARN]   Hangar.AutoHangar: AutoHangar: Total players to check:4258
20:42:23.1047 [INFO]   QuantumHangar.Serialization.GridSerializer: 2
20:42:23.1547 [WARN]   QuantumHangar.Serialization.GridSerializer: Saving grid @Q:\76561198034175469\[05] Phalanx#00.sbc
20:42:23.1703 [FATAL]  Initializer: System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds.
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex)
   at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
   at VRage.Game.Entity.MyGameLogic.UpdateBeforeSimulation()
   at Sandbox.Game.World.MySector.UpdateBeforeSimulation()
   at Patched_Sandbox.Game.World.MySessionUpdateComponents_0(Object )
   at Patched_Sandbox.Game.World.MySessionUpdate_0(Object , MyTimeSpan )
   at Sandbox.MySandboxGame.Update()
   at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
   at Sandbox.Engine.Platform.Game.RunSingleFrame()
   at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
   at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
   at Sandbox.Engine.Platform.Game.RunLoop()
   at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
   at Torch.VRageGame.DoStart() in C:\build\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 288
   at Torch.VRageGame.Run() in C:\build\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 123
   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.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds.
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex)
   at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
   at VRage.Game.Entity.MyGameLogic.UpdateBeforeSimulation()
   at Sandbox.Game.World.MySector.UpdateBeforeSimulation()
   at Patched_Sandbox.Game.World.MySessionUpdateComponents_0(Object )
   at Patched_Sandbox.Game.World.MySessionUpdate_0(Object , MyTimeSpan )
   at Sandbox.MySandboxGame.Update()
   at Patched_Sandbox.Engine.Platform.GameUpdateInternal_0(Object )
   at Sandbox.Engine.Platform.Game.RunSingleFrame()
   at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
   at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
   at Sandbox.Engine.Platform.Game.RunLoop()
   at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
   at Torch.VRageGame.DoStart() in C:\build\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 288
   at Torch.VRageGame.Run() in C:\build\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 123
   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.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
20:42:23.1703 [INFO]   Initializer: Generating minidump at C:\Torch-Servers\SENDS05\Instance\Minidump.dmp
20:42:23.1703 [ERROR]  Initializer: Keen broke the minidump, sorry.
20:42:23.7224 [INFO]   Hangar.AutoHangar: [05] Phalanx#00 was sent to Hangar due to inactivity!
20:42:23.8474 [INFO]   QuantumHangar.Serialization.GridSerializer: 1```

Feature request: Have enemy check ignore Admin level characters

Feature request: Have enemy check ignore Admin level characters

Just annoying sometimes when working with a player on an issue they need to hangar save or load for and they can't because we (in admin mode) are an enemy. Not a big deal/priority of course

bug: gps isn't added when loading grid cross-server via nexus

Just read a bug report from a player that they loaded a grid on another server, they were expecting the GPS to appear in their GPS list as when loading a grid on the same server, but it didn't.

That seems plausible as we only relay chat messages over nexus and I seem to recall GPS were added in some other part of the code, which we now run on the remote server, no longer locally, so the GPS isn't added to the server the player is currently in.

Filing this bug for tracking.

Goal: change the various CharacterUtilities.SendGps in this file https://github.com/Casimir255/QuantumHangar/blob/57c0c7743e0d0af64f33a99b6e49afe83e548d35/HangarChecks/PlayerChecks.cs#L441 and relay them over nexus.

Can not Auto Dupe/Loss protection between server crashes

In plugin page https://torchapi.com/plugins/view/24fc7724-0740-4a54-8bb3-1191fd3c8db4
I see that

plugin can Auto Dupe/Loss protection between server crashes.

And then I make a test.

First, I paste a Grid for test.
Second, I run command "!save" to save game.
Third I use "!h save" to save the grid into hanger.
Fourth ,I make the server crash with a command I write.

        [Command("stackOverFlow", "test")]
        [Permission(MyPromoteLevel.Admin)]
        public void stackOverFlow()
        {
            stackOverFlow();
        }

and then I kill the server.
This option is mock when a error happen and server can't autosave.

Fifth, I restart the server,and then I had copy a Grid(the one in the hanger,other one in game).


By test seems that Hangar can't promise prevent Clone and Loss of grid.

In the multiplayer online environment with many mods, server crashes are frequent. Players can clone spaceships through this way, or players will lose spaceships.

When using "Forced Original Position"; hangarmod load ignores position

When using "Forced Original Position"; hangarmod load ignores position

I saved a couple things to my hangar to test, tried to use hangarmod load to test forced position spawning while ignoring the cooldown - they spawned near my player instead of in the forced position they should have

Trying to do hm load from discord console breaks as well
Exception has been thrown by the target of an invocation.

https://i.imgur.com/XNBKXgr.png
low priority to me

[Bug] player sent to spectator mode

Expected Behaviour: When a player uses the !hangar save command on a grid, any player in a seat should be kicked from that seat when the grid is stored.

Actual Behaviour: When a player uses the !hangar save command on a grid, any player in a seat is sent to spectator mode and must relog to return to character control.

Behaviour replicated in Flight Seat, Control Seat, Passenger Seat, Toilet Seat, Fighter Cockpit, Industrial Cockpit and Cockpit.

moderator unhangar command spawning grids as unowned

please set to command !hangarmod load <username> <number> to assign ownership of the grid to the player given in username. pasting in as owned by nobody results in grids shooting each other upon pasting, which is not conducive to grid recovery operations for staff teams.

Feature request: GPS in logs for hangar load

12:13:26.6319 [INFO]   Torch.Commands.CommandManager: Player mongo_fbs ran command '!h load 2'
12:13:26.6319 [INFO]   QuantumHangar.Utilities.HangarChecks: Grid is force load from originial position
12:13:26.6319 [INFO]   Chat: Hangar (to mongo_fbs): A GPS has been added to your HUD
12:13:28.4487 [WARN]   QuantumHangar.GridMethods: Successfully BackedUp grid!
12:13:28.4487 [INFO]   Chat: Hangar (to mongo_fbs): There are potentially other grids in the way. Attempting to spawn around the location to avoid collisions.
12:13:28.4487 [INFO]   Chat: Hangar (to mongo_fbs): Load Complete!

It would be nice to have it list the GPS it attempted to load at; as well as the GPS where it actually loaded in at when it attempted to spawn around the location -- just so we have more data when needing to prove to players things are working fine (or for debug to see if things aren't)

~hangar load "name" adds erroneous .sbc to filename it looks for

19:30:11.7315 [INFO]   Torch.Commands.CommandManager: Player Jaxx ran command '!hangar load JaxxMiner'
19:30:11.7315 [INFO]   Chat: Hangar (to Jaxx): Grid doesnt exist! Admin should check logs for more information.
19:30:11.7315 [FATAL]  QuantumHangar.GridMethods: Grid doesnt exsist @C:\Torch-Servers\GarageSEDS6\76561198822198871\JaxxMiner.sbc.sbc

Looking for JaxxMiner.sbc.sbc for some reason instead of just JaxxMiner.sbc
Loading via index number worked fine

https://i.imgur.com/eqgHT08.png

[Bug] Autohangar is grabbing subgrids separately

Had a build where it was platform base with a rotor on it; then the subgrid that is the rotor
when autohangar came through; it saved these as two separate items in my hangar, using the rotor head connection as the delimiter.
This was docked to another grid via locked connector, which also got hangared separately (so this is really kind of 2 problems it seems)

We have the "EnableSubGrids" feature on for hangar, so I would have expected everything to go autohangar as a single slot item

Duplicate

image

Hello, as you can see in the picture above, when I remove a grid from a hangar, it still available and I can pull it out again and again.

Also, as you can see, even though there are 4 limits, it shows 40 limits. It started after the last update.

image

[Bug] Server fatal after player ran !h list

Had someone run !h list; we got this fatal and the player started getting "your previous command hasn't finished" when trying to run !h list again.
The server definitely ...crashed...but until I went and clicked "ok" on the torch fatal alert; the server was.....running somehow still...which was like 15+minutes later that igot to it

06:22:25.6739 [INFO]   Nexus.Utilities.PlayerEventController: SindriLogged off! Clearing Data from NexusSystem!
06:22:25.6739 [INFO]   Nexus.Sync.PlayerDataSync: Saving Sindri meta data!
06:22:25.6739 [INFO]   Torch.Managers.MultiplayerManagerBase: Sindri (76561198137419151) Disconnected.
06:22:26.9239 [INFO]   Chat: Hangar (to [007...151]): You have 11/100 stored grids:
 [1] - Atmo Katana 2
 [2] - Atmo Katana 1
 [3] - Runner
 [4] - Projector Drag
 [5] - Tech Scrap
 [6] - The Jotunn
 [7] - Katana Drake
 [8] - Mini Hydro Refueler
 [9] - Jump stick
 [10] - Welder
 [11] - DCA Lawn Dart

06:22:26.9239 [FATAL]  Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
   at QuantumHangar.Commands.HangarCommandSystem.RemoveCompletedTask(CommandContext Context) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 165
   at QuantumHangar.Commands.HangarCommandSystem.<RunTaskAsync>d__5.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 136
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarSimpCommands.<ListGrids>d__1.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommands.cs:line 114
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   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()
System.NullReferenceException: Object reference not set to an instance of an object.
   at QuantumHangar.Commands.HangarCommandSystem.RemoveCompletedTask(CommandContext Context) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 165
   at QuantumHangar.Commands.HangarCommandSystem.<RunTaskAsync>d__5.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 136
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarSimpCommands.<ListGrids>d__1.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommands.cs:line 114
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   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()
06:22:26.9239 [INFO]   Initializer: Generating minidump at C:\Torch-Servers\SENDS06\Instance\Minidump.dmp
06:22:26.9239 [ERROR]  Initializer: Keen broke the minidump, sorry.
06:22:31.2520 [INFO]   Nexus.Utilities.PlayerEventController: Player Sindri Joined! Requesting MetaData!
06:22:31.2520 [WARN]   Nexus.SeamlessClients.WorldRequestClass: Sending joinping to client!
06:22:31.2520 [INFO]   Torch.Server.Managers.MultiplayerManagerDedicated: Connection attempt by 76561198137419151 from 24.176.79.37
06:22:31.2520 [INFO]   Torch.Managers.MultiplayerManagerBase: Player Sindri joined (76561198137419151)
06:22:31.2989 [INFO]   StaticMarker.MarkerPlugin: Connected
06:22:31.2989 [INFO]   Essentials.RanksAndPermissionsModule: Binding ranks to Sindri's session (Expires when server restarts)
06:22:31.2989 [INFO]   Essentials.RanksAndPermissionsModule: The following ranks have been assiged to Sindri: Default
06:22:31.4708 [INFO]   ALE_DeathLocationFix.MySessionPatch: Stripped LastDeathPositions from world for client connect.
06:22:35.6583 [INFO]   ServerNetwork.Sync.PlayerSync: Lochemel passed ValidationChecks! SteamID: 76561198137910863, PlayerID: 144115188075861537
06:22:52.5646 [INFO]   Nexus.Sync.PlayerDataSync: Saving Vilk meta data!
06:22:52.5646 [INFO]   Nexus.Sync.PlayerDataSync: Saving Niner meta data!
06:22:52.5646 [INFO]   Nexus.Sync.PlayerDataSync: Saving Orion meta data!
06:22:52.5646 [INFO]   Nexus.Sync.PlayerDataSync: Saving JeffMan meta data!
06:22:53.0021 [INFO]   Nexus.Sync.ServerStartMessage: Original Sanbox Size: 73026kb  Compressed: 2358kb
06:22:53.9709 [INFO]   ServerNetwork.Sync.PlayerSync: Kepler J passed ValidationChecks! SteamID: 76561198034507414, PlayerID: 144115188075858033
06:23:06.4240 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 101804 reorder calls.
06:23:07.8928 [INFO]   Concealment: 227/255 grids are concealed (89.02 %), 3 new.
06:23:29.0335 [INFO]   ServerNetwork.Sync.PlayerSync: Sindri joined! SID: 76561198137419151 Identity: 144115188075856011 RealPlayer: True InitialPlayer: True 
06:23:29.0335 [INFO]   Nexus.Utilities.PlayerEventController: Sindri successfully connected! Running First Connection Methods!
06:23:32.8460 [INFO]   Concealment: Revealed 3 grids near players.
06:23:33.2210 [WARN]   Nexus.BoundarySystem.PlayerSectorTransport: Sindri has up-to-date seamless client version: 1.2.20
06:23:42.1116 [INFO]   GridSplitNameKeeper: Closing grid Static Grid 1405 after splitting from VSI Maui Constructor
06:23:49.7210 [INFO]   Chat:  (to Sindri): Your previous command has yet to finish!
06:23:49.7210 [INFO]   Torch.Commands.CommandManager: Player Sindri ran command '!h list'
06:24:04.0648 [INFO]   ServerNetwork.Sync.PlayerSync: Dino passed ValidationChecks! SteamID: 76561198300097771, PlayerID: 144115188075856895
06:24:06.4242 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 178262 reorder calls.
06:24:14.2993 [INFO]   Chat:  (to Sindri): Your previous command has yet to finish!
06:24:14.2993 [INFO]   Torch.Commands.CommandManager: Player Sindri ran command '!h list'
06:24:37.2368 [INFO]   Chat:  (to Sindri): Your previous command has yet to finish!
06:24:37.2368 [INFO]   Torch.Commands.CommandManager: Player Sindri ran command '!h list'
06:25:01.1744 [INFO]   Chat:  (to Sindri): Your previous command has yet to finish!
06:25:01.1744 [INFO]   Torch.Commands.CommandManager: Player Sindri ran command '!h list'
06:25:06.4244 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 90062 reorder calls.
06:25:26.7526 [INFO]   SigmaAF11: Ghosts: Finished command
06:25:39.4089 [INFO]   Nexus.Commands.RecievedDiscordCommands: Command uptime finished!
06:26:06.4246 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 26537 reorder calls.
06:26:19.7684 [INFO]   ALE_Biggest_Grids_Broadcast.GridsBroadcastPlugin: Removing Biggest Grid GPS from all Players.
06:26:19.7684 [INFO]   Torch.Commands.CommandManager: Server ran command '!sendmixgps true true'
06:26:45.3467 [INFO]   ServerNetwork.Sync.PlayerSync: Dino passed ValidationChecks! SteamID: 76561198300097771, PlayerID: 144115188075856895
06:26:46.6279 [INFO]   Torch.Commands.CommandManager: Player Vilk ran command '!tags'
06:26:54.7842 [INFO]   ALE_GridBackup.GridBackupPlugin: Backup took 276036ms (1905ms CPU)
06:26:54.7842 [INFO]   ALE_GridBackup.Utilities: Start deleting backups older than 7 days were deleted.
06:26:55.0654 [INFO]   ALE_GridBackup.Utilities: Backups older than 7 days were deleted.
06:26:56.2998 [INFO]   Chat: [Global:0] JeffMan: i hope the next update they will make a canvas gun to trap disarm other players
06:27:00.7686 [INFO]   Chat:  (to Vilk): Are you sure you want to continue? Enter the command again within 30 seconds to confirm fixship on SEN - Eagle Mk3.
06:27:00.7686 [INFO]   Torch.Commands.CommandManager: Player Vilk ran command '!fixship'
06:27:01.6748 [WARN]   ALE_ShipFixer.ShipFixerPlugin: Player Vilk used ShipFixerPlugin on Grid SEN - Eagle Mk3 for cut & paste!
06:27:01.8311 [INFO]   Chat:  (to Vilk): Ship was fixed!
06:27:01.8311 [INFO]   ALE_ShipFixer.Commands: Cooldown for Player Vilk started!
06:27:01.8311 [INFO]   Torch.Commands.CommandManager: Player Vilk ran command '!fixship'
06:27:06.4248 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 90490 reorder calls.

[Feature Request]

Feature Request - Show PCU [Used : Max] when total garage PCU limit enabled
Additionally, listing PCU used per slot would be helpful information as well

Enemy check treats allied factions as enemies

When trying to !hangar save or load a grid, the enemy detection radius seems to be including factions you are allied with in game ("Peace") as "enemies" and prevents using the hangar

Hangar Crashed Server

Looks like the server crashed due to a hangar call here. Thanks for looking!

22:07:59.7266 [ERROR] Hangar.AutoHangar: System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Aggregate[TSource](IEnumerable1 source, Func3 func)
at QuantumHangar.Utils.GridUtilities.BiggestGrid(IEnumerable1 Grids, MyCubeGrid& BiggestGrid) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 499 at QuantumHangar.Utils.GridUtilities.IsPlayerIdCorrect(Int64 playerId, List1 gridList) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 445
at QuantumHangar.Utils.GridUtilities.<>c__DisplayClass16_0.b__1(Group group) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 432
at System.Threading.Tasks.Parallel.<>c__DisplayClass42_02.<PartitionerForEachWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner1 source, ParallelOptions parallelOptions, Action1 simpleBody, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, Action1 body) at QuantumHangar.Utils.GridUtilities.FindGridList(Int64 playerId, Boolean includeConnectedGrids) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 416 at QuantumHangar.AutoHangar.AutoHangarWorker() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\AutoHangar\Autohangar.cs:line 103 at QuantumHangar.AutoHangar.RunAutoHangar() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\AutoHangar\Autohangar.cs:line 46 ---> (Inner Exception #0) System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Aggregate[TSource](IEnumerable1 source, Func3 func) at QuantumHangar.Utils.GridUtilities.BiggestGrid(IEnumerable1 Grids, MyCubeGrid& BiggestGrid) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 499
at QuantumHangar.Utils.GridUtilities.IsPlayerIdCorrect(Int64 playerId, List1 gridList) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 445 at QuantumHangar.Utils.GridUtilities.<>c__DisplayClass16_0.<FindGridList>b__1(Group group) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 432 at System.Threading.Tasks.Parallel.<>c__DisplayClass42_02.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---

System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Aggregate[TSource](IEnumerable1 source, Func3 func)
at QuantumHangar.Utils.GridUtilities.BiggestGrid(IEnumerable1 Grids, MyCubeGrid& BiggestGrid) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 499 at QuantumHangar.Utils.GridUtilities.IsPlayerIdCorrect(Int64 playerId, List1 gridList) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 445
at QuantumHangar.Utils.GridUtilities.<>c__DisplayClass16_0.b__1(Group group) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 432
at System.Threading.Tasks.Parallel.<>c__DisplayClass42_02.<PartitionerForEachWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner1 source, ParallelOptions parallelOptions, Action1 simpleBody, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, Action1 body) at QuantumHangar.Utils.GridUtilities.FindGridList(Int64 playerId, Boolean includeConnectedGrids) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 416 at QuantumHangar.AutoHangar.AutoHangarWorker() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\AutoHangar\Autohangar.cs:line 103 at QuantumHangar.AutoHangar.RunAutoHangar() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\AutoHangar\Autohangar.cs:line 46 ---> (Inner Exception #0) System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Aggregate[TSource](IEnumerable1 source, Func3 func) at QuantumHangar.Utils.GridUtilities.BiggestGrid(IEnumerable1 Grids, MyCubeGrid& BiggestGrid) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 499
at QuantumHangar.Utils.GridUtilities.IsPlayerIdCorrect(Int64 playerId, List1 gridList) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 445 at QuantumHangar.Utils.GridUtilities.<>c__DisplayClass16_0.<FindGridList>b__1(Group group) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 432 at System.Threading.Tasks.Parallel.<>c__DisplayClass42_02.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---

bounding box detection is based on grid origin which could be out of bounds

Digging bug report from a user, which actually reveals an issue with the bounding box code:

  • build a grid
  • extend it to one side with many blocks
  • then build something at the end
  • and remove all the blocks from the origin, keeping only the end

The bounding box is somehow still centered on that grid origin, when it should in fact be more or less at the center of the grid.

This might be a known keen bug for keeping the grid origin outside of the actual grid, but maybe we can work around it by calculating the real center of blocks.

https://github.com/Casimir255/QuantumHangar/blob/master/Utilities/ParallelSpawner.cs#L244

[Feature Request] - Dupes-in-hangar prevention

store the entityID in players.json
Cross-check that when it goes to save and overwrite entityID if it's the same one
[13:50] Kontu: >.> The saved blueprint in hangar has the entityID in it we know this already 'cause of gridbackup on load..so that simple crosscheck should handle those kinds of dupes at least right?
They could still wait for a save, !fixship, then save and crash it but at least it cuts out a bunch of dupes if the server is crashlooping or something
[14:22] Casimir: well, i dont even have to store it
[14:22] Casimir: just keep a running list of all hangar saves and clear them when the server saves
[14:23] Casimir: when a server starts, it checks that list and if it has any, remove them
[14:23] Casimir: Thats what I used to do

All this is intended to do is prevent things like autohangar from saving a duplicate copy of the same entityID. I know it won't stop all dupe situations, but this would cover the majority of "accidental dupes" we see from server crashes unrelated to QH

[Feature Request] Loading Grids by their Name or ID, Instead of their List Number

Hi there. I'd love to be able to load hangar grids by a static ID, rather than their order on the list. My reasoning for this is that I would be able to create hotkeys to load specific grids, or load a grid without having to refer to the list first. Something like "!hangar load BigShip", for example. This would be an awesome feature in order to make grid loading faster and more consistent.

Public Server Offers

Hey there,

I know this is EOL but just wanted to check if the Admin BP market tab was done away with as It doesn't seem to be appearing on my end and if so was there any other alternative method?

Unable to get owners SteamID! Are you an NPC?

I have a user who originally joined my server and was auto-added to one of the npc factions. I have removed him, but when he tries to save a grid, he gets the error "Unable to get owners SteamID! Are you an NPC?"

we re-used the PlayerHangars file from a previous server that he and I were both on, so I imagine that also may have played a hand here.

Deleting his PlayerHangar folder and remaking it has not assisted in resolving this. I imagine there's a Json somewhere that tracks users and their steamIDs but i'm unsure of where to proceed.

Thank You!

Grids being removed from hangar as dupes when they aren't

We're having grids removed from player hangars by the anti-dupe protection that aren't dupes
Fastest way to reproduce:
Print a blueprint with a welder with the name "Sausage"
!hangar save
Print a second copy with the name "Sausage" (so just use the same blueprint)

The player now has a copy in the Hangar and an "identical" copy in the world -- Hangar removes it from the Hangar; but leaves it in the players hangar list. They try to !hangar load it and get told "grid doesn't exist have admin check logs"

Quantum Hangar server crash XML Serialization

Not really sure what led to it; here's logs a few minutes prior and then the biggest stack trace I've seen

11:45:50.1029 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 22985 reorder calls.
11:46:37.6540 [INFO]   CrunchUtilities.CrunchUtilitiesPlugin: Updating names
11:46:52.6520 [INFO]   ServerGatePlugin.BoundrySystem.BoundaryThread: Transport Grid Recieved!
11:47:30.3168 [INFO]   Chat: Sigma Draconis (to ID:0): Server: Use !wiki in chat to open our Wiki in the Steam Browser Overlay!
11:47:35.0298 [INFO]   Chat: Theta Draconis (to ID:0): malus_71live: /
11:47:47.5172 [INFO]   ServerGatePlugin.BoundrySystem.BoundaryThread: Retry #100 Attack core
11:48:00.4849 [INFO]   Chat: Sigma Draconis (to ID:0): Server: Automated cleanup commencing shortly.  Please ensure your ships and stations follow the guidance on the Draconis wiki.
11:48:04.9198 [ERROR]  Torch: Frozen thread dump Main thread
Common prefix:
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5400_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5403_Item(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6307_Item()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ShipBlueprintDefinitionSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read4518_MyObjectBuilder_Definitions(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6213_Definitions()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_DefinitionsSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.ObjectBuilders.MyObjectBuilderSerializer.DeserializeXML(Stream reader, MyObjectBuilder_Base& objectBuilder, Type builderType, Dictionary`2 typeOverrideMap)
   at VRage.ObjectBuilders.MyObjectBuilderSerializer.DeserializeXML[T](Stream reader, T& objectBuilder)
   at VRage.ObjectBuilders.MyObjectBuilderSerializer.DeserializeXML[T](String path, T& objectBuilder, UInt64& fileSize)
   at VRage.ObjectBuilders.MyObjectBuilderSerializer.DeserializeXML[T](String path, T& objectBuilder)
   at QuantumHangar.GridMethods.LoadGrid(String GridName, MyCharacter Player, Int64 TargetPlayerID, Boolean keepOriginalLocation, Chat chat, Hangar Plugin, Boolean force) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utilities\Utils.cs:line 167
   at QuantumHangar.Utilities.HangarChecks.LoadGridFile(String GridName, PlayerInfo Data, GridStamp Grid, Boolean admin) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utilities\HangarChecks.cs:line 2448
   at QuantumHangar.Utilities.HangarChecks.LoadGrid(String GridNameOrNumber, Boolean ForceLoadAtSavePosition) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utilities\HangarChecks.cs:line 270
   at QuantumHangar.ChatCommands.Load(String GridNameOrNumber, Boolean LoadAtSavePosition) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\ChatCommands.cs:line 51
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Torch.Commands.Command.TryInvoke(CommandContext context) in C:\jenkins\workspace\Torch_Torch_master\Torch\Commands\Command.cs:line 145
   at Torch.Commands.CommandManager.<>c__DisplayClass21_1.<HandleCommand>b__1() in C:\jenkins\workspace\Torch_Torch_master\Torch\Commands\CommandManager.cs:line 159
   at Sandbox.MySandboxGame.ProcessInvoke()
   at Sandbox.MySandboxGame.Update()
   at Sandbox.Engine.Platform.Game.UpdateInternal()
   at Patched_Sandbox.Engine.Platform.GameRunSingleFrame_0(Object )
   at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass11_0.<Run>b__0()
   at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
   at Sandbox.Engine.Platform.Game.RunLoop()
   at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
   at Torch.VRageGame.DoStart() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 246
   at Torch.VRageGame.Run() in C:\jenkins\workspace\Torch_Torch_master\Torch\VRageGame.cs:line 118
   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.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Suffix 0
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.InitIDs()
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)

Suffix 1
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.InitIDs()

Suffix 2
   at System.MarvinHash.ComputeHash(Byte* data, Int32 count, UInt64 seed)
   at System.Xml.NameTable.Add(String key)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.InitIDs()
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5731_ComponentData(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5732_Item(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read5750_MyObjectBuilder_TextPanel(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6298_MyObjectBuilder_TextPanel()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_TextPanelSerializer.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at VRage.MyXmlSerializerBase`1.Deserialize(XmlReader reader, XmlSerializer serializer, String customRootName)
   at VRage.MyAbstractXmlSerializer`1.ReadXml(XmlReader reader)
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1830_MyObjectBuilder_CubeGrid(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1843_MyObjectBuilder_Projector(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read6295_MyObjectBuilder_Projector()
   at Microsoft.Xml.Serialization.GeneratedAssembly.MyObjectBuilder_ProjectorSerializer.Deserialize(XmlSerializationReader reader)


11:48:04.9198 [FATAL]  Initializer: System.TimeoutException: Server watchdog detected that the server was frozen for at least 60 seconds.
   at Torch.Server.TorchServer.CheckServerResponding(Object state) in C:\jenkins\workspace\Torch_Torch_master\Torch.Server\TorchServer.cs:line 287
   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.TimerQueueTimer.CallCallback()
   at System.Threading.TimerQueueTimer.Fire()
   at System.Threading.TimerQueue.FireNextTimers()
System.TimeoutException: Server watchdog detected that the server was frozen for at least 60 seconds.
   at Torch.Server.TorchServer.CheckServerResponding(Object state) in C:\jenkins\workspace\Torch_Torch_master\Torch.Server\TorchServer.cs:line 287
   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.TimerQueueTimer.CallCallback()
   at System.Threading.TimerQueueTimer.Fire()
   at System.Threading.TimerQueue.FireNextTimers()
11:48:04.9198 [INFO]   Initializer: Generating minidump at C:\Torch-Servers\SEDS9\Instance\Minidump.dmp
11:48:04.9198 [ERROR]  Initializer: Keen broke the minidump, sorry.
11:48:10.1557 [INFO]   SteamCMD: Checking for DS updates.```

[Bug] - Server crash when we ran !hm save from discord

We restored Brickstrosity than tried to !hm save it from discord console and the server instantly crashed with the below
https://i.imgur.com/yZQxC7s.png

05:14:46.9213 [INFO]   ALE_GridBackup.BackupCommands: Server restored backup from path: C:\Torch-Servers\TDRAC04\Instance\GridBackups\144115188075856188\Brickstrosity_108997553508478067\2021_05_26_21_51_00.sbc
05:14:46.9213 [INFO]   Nexus.Commands.RecievedDiscordCommands: Command restore finished!
05:14:47.7494 [WARN]   ServerNetwork.Sync.ProgressionSync: Progression Update!
05:14:51.3275 [INFO]   ServerNetwork.Sync.PlayerSync: Silvermade joined! SID: 76561198052869524 Identity: 144115188075856046 RealPlayer: True InitialPlayer: True 
05:14:51.3275 [INFO]   Nexus.Utilities.PlayerEventController: Silvermade successfully connected! Running First Connection Methods!
05:14:52.7338 [INFO]   ServerNetwork.Sync.PlayerSync: TestTestTest
05:14:52.7494 [INFO]   ServerNetwork.Sync.PlayerSync: Aussie Rev passed ValidationChecks! SteamID: 76561198003614231, PlayerID: 144115188075855982
05:14:58.7651 [INFO]   ServerNetwork.Sync.PlayerSync: TestTestTest
05:14:58.7807 [INFO]   ServerNetwork.Sync.PlayerSync: Ashbane passed ValidationChecks! SteamID: 76561198138013290, PlayerID: 144115188075855979
05:15:00.0307 [INFO]   Concealment: 487/732 grids are concealed (66.53 %), 5 new.
05:15:02.5463 [INFO]   Nexus.Commands.RecievedDiscordCommands: Command save finished!
05:15:02.5463 [FATAL]  Initializer: System.NullReferenceException: Object reference not set to an instance of an object.
   at QuantumHangar.Utils.GridUtilities.FindGridList(String gridNameOrEntityId, MyCharacter character, List`1& Grids) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 270
   at QuantumHangar.GridResult.GetGrids(Chat Response, MyCharacter character, String GridNameOREntityID) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utilities\SerializableData.cs:line 492
   at QuantumHangar.HangarChecks.AdminChecks.SaveGrid(String NameOrIdentity) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\HangarChecks\AdminChecks.cs:line 63
   at QuantumHangar.Commands.HangarSimpAdminCommands.<>c__DisplayClass0_0.<SaveGrid>b__0() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarAdminCommands.cs:line 86
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarCommandSystem.<RunAdminTaskAsync>d__6.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 143
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarSimpAdminCommands.<SaveGrid>d__0.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarAdminCommands.cs:line 86
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   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()
System.NullReferenceException: Object reference not set to an instance of an object.
   at QuantumHangar.Utils.GridUtilities.FindGridList(String gridNameOrEntityId, MyCharacter character, List`1& Grids) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utils\GridUtilities.cs:line 270
   at QuantumHangar.GridResult.GetGrids(Chat Response, MyCharacter character, String GridNameOREntityID) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Utilities\SerializableData.cs:line 492
   at QuantumHangar.HangarChecks.AdminChecks.SaveGrid(String NameOrIdentity) in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\HangarChecks\AdminChecks.cs:line 63
   at QuantumHangar.Commands.HangarSimpAdminCommands.<>c__DisplayClass0_0.<SaveGrid>b__0() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarAdminCommands.cs:line 86
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarCommandSystem.<RunAdminTaskAsync>d__6.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarCommandSystem.cs:line 143
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at QuantumHangar.Commands.HangarSimpAdminCommands.<SaveGrid>d__0.MoveNext() in C:\Users\Garrett Fulghum\source\repos\QuantumHangar\Commands\HangarAdminCommands.cs:line 86
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   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()
05:15:02.5463 [INFO]   Initializer: Generating minidump at C:\Torch-Servers\TDRAC04\Instance\Minidump.dmp
05:15:02.5463 [ERROR]  Initializer: Keen broke the minidump, sorry.
05:15:10.8901 [INFO]   Torch.Managers.PatchManager.PatchManager: Patching begins...
05:15:10.9682 [INFO]   Torch.Managers.PatchManager.PatchManager: Patched 2/12.  (16%)

Sometimes with hangar save, grids don't show up in list

Been seeing a few times now that when someone uses hangar save (or h save, doesn't matter); the sbc gets created properly, the grid gets removed from the world; but the grid doesn't show up in their hangar list until we run !hangar sync on them.

23:58:29.3995 [INFO] Torch.Commands.CommandManager: Player alucard0909 ran command '!h save'
23:58:29.4216 [WARN] QuantumHangar.Utilities.HangarChecks: Checking for exsisting grids in hangar!
23:58:29.4216 [WARN] QuantumHangar.Utilities.HangarChecks: Checking Grid Name
23:58:29.4216 [WARN] QuantumHangar.Utils: Running GridName Checks: {Fenris D4 (Printer)} :False
23:58:29.5222 [WARN] QuantumHangar.GridMethods: Successfully BackedUp grid!
23:58:29.5222 [WARN] QuantumHangar.GridMethods: C:\Torch-Servers\GarageSEDS5\76561197998339440\Fenris D4 (Printer).sbc
23:58:31.4370 [INFO] Chat: [Private:199687944342863981] jjkflittie: can you hangar bases?
23:58:33.5613 [INFO] Torch.Commands.CommandManager: Player alucard0909 ran command '!h list'
23:58:33.5613 [WARN] QuantumHangar.Utilities.HangarChecks: 34
23:58:33.5613 [INFO] Chat: Hangar (to alucard0909): You have 34/50 stored grids:
[1] - 11117_523_smlw2_08.14.2020_16.04.13
[2] - 12013_545_S-Missile 24 8.31 (fired)_09.01.2020_15.31.52
[3] - 43014_1241_Land-Missile 26_08.30.2020_18.22.30
[4] - 43014_1241_Land-Missile 30_08.31.2020_00.19.09
[5] - 9237_669_Garm Al6_08.31.2020_12.09.01
[6] - Land-Missile 30
[7] - Sml8 (LV)
[8] - Small tower (LV)
[9] - Centurion (LV)
[10] - Sml2 (Printer)
[11] - Sml13 (Printer)
[12] - Sml15 (Printer)
[13] - Anti bombing platform 6 (LV)
[14] - Anti bomb platform 3 (LV)
[15] - Anti bombing platform 5 (LV)
[16] - Cerberus + 17 (Printer)
[17] - Valkyrie (59.8k, 183km KOTH)
[18] - Hoplite K (Printer)
[19] - Hoplite J (700KM KOTH)
[20] - Tower D (Printer)
[21] - Tower L (Printer)[1]
[22] - Tower P (Printer)
[23] - Hoplite B (Printer)
[24] - Hoplite DO (Printer)
[25] - Hoplite Y1 (Printer)
[26] - Fighter 5 (120km KOTH)
[27] - Fighter 3 (120km KOTH)
[28] - Hoplite Y (Printer, damaged)
[29] - Mary Delta (Printer)
[30] - Fighter 2 (120km KOTH)
[31] - Tower I (Printer)
[32] - Fenris B3 (Printer)[1]
[33] - Fenris H3 (Printer)
[34] - Type B Fighter 2 (Printer)

Hangar checking limits after and not before hangaring

Encountering issues live on production for The Expanse Vanilla which runs a few plugins.
Players are using !hangar save on grids that are over the servers allowed keen block limits(ex, grid with 20 grinders from 2 players, player keen block limit is 15). These players are then unable to !hangar load the grid back into the world.
This has cost us a huge labor cost on staff having to manually load these grids back into the world. Is this a known bug where !hangar save does not perform a keen block limits check but !hangar load does?
We are unable to use the work around of not checking limits for !hangar load, as many players use it to bypass keen block limits restrictions.
Thank you so much in advance, QuantumHangar has been an amazing quality of life improvement.

bring back nexus support for grid load

57c0c77 effectively disabled nexus support for grid load by introducing a new Config.NexusAPI setting by default disabled (false).

Using this as a tracking bug for what needs to happen so we can restore nexus support for grid load.

  1. [StalkR] relay GPS over nexus: #57
  2. [StalkR] expose NexusAPI in the config UI: #58
  3. [Casimir] add API methods to include server type so the plugin can make better decisions

feature request: Gps check before load

Players requesting a way to do like; !hangar gps 1 to get the gps point 1 would load at if it has a forced position (just return "will spawn enar player, no forced gps" or something if it's not)

Need List of .cfg options

Hi there, I use Server Blend for hosting my SE server specifically but i think its the same for all rented servers where you don't get access to the torch panel. I have to edit the actual config file itself. Not too bad but the documentation for the plugin doesnt include what the written options in the config are. For example in ForceLoadMearPlayer I want to set it to the option of having grids spawn where they were saved but I don't know what the written code for that is and thus can't edit this. If you could provide the written options for the config that would be awesome.

Thanks

Bug: HM Save not working

When ingame on 3.1.02 running hm save while looking at a grid or hm save "gridname" dont seem to work at all.

12:50:52.3412 [INFO] Hangar.CommandSystem: Running Admin command!
12:50:57.3418 [INFO] Chat: Hangar (to TwistedGrim): Saved Failed!
12:50:57.3418 [INFO] Torch.Commands.CommandManager: Player TwistedGrim ran command '!hm save "Twisted Solar Cluster Spawn"'

Bug - Player save/load commands do nothing on latest SE version. Mod commands seem to work

11:24:32.8893 [WARN]   QuantumHangar.Commands.HangarCommandSystem: 76561197982600699 Action completed!
11:24:37.8581 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!h save'
11:24:49.8581 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 12182 reorder calls.
11:24:59.8425 [INFO]   Chat:  (to Kontu): Invalid Syntax: !facinfo <String tag> [Boolean members] 
11:25:02.7487 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!facinfo Kontu'
11:25:22.0457 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!facinfo Storm'
11:25:41.2645 [INFO]   CrunchUtilities.CrunchUtilitiesPlugin: Updating names
11:25:42.0770 [INFO]   ALE_Biggest_Grids_Broadcast.GridsBroadcastPlugin: Removing Biggest Grid GPS from all Players.
11:25:42.0926 [INFO]   Torch.Commands.CommandManager: Server ran command '!sendmixgps true true'
11:25:43.8895 [ERROR]  QuantumHangar.Commands.HangarCommandSystem: Task is being removed! Status: Faulted Errors: One or more errors occurred.
11:25:43.8895 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!h list'

!h save did nothing in game, !h list and !h load also dont
!hm commands work fine

11:26:39.1878 [INFO]   QuantumHangar.Serialization.GridSerializer: 1
11:26:39.2034 [WARN]   QuantumHangar.Serialization.GridSerializer: Saving grid @C:\Torch-Servers\PATCAT02\Instance\QuantumHangar\76561197982600699\Large Grid 5034.sbc
11:26:39.2503 [INFO]   Chat: Hangar (to Kontu): Save Complete!
11:26:42.2972 [INFO]   Chat:  (to Kontu): Invalid Syntax: !hm list <String NameOrSteamID> 
11:26:44.4222 [INFO]   Chat: Hangar (to Kontu): Players has 1/60 stored grids:
 [1] - Large Grid 5034

11:26:44.4222 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!hm list Kontu'
11:26:46.0628 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!h list'
11:26:46.0628 [INFO]   Chat: Hangar (to Kontu): You have 1/60 stored grids:
 [1] - Large Grid 5034

11:26:46.0628 [WARN]   QuantumHangar.Commands.HangarCommandSystem: 76561197982600699 Action completed!
11:26:49.0003 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!h load 1'
11:26:49.0003 [WARN]   Hangar.PlayerHangar: Attempting to load grid @C:\Torch-Servers\PATCAT02\Instance\QuantumHangar\76561197982600699\Large Grid 5034.sbc
11:26:49.8909 [INFO]   RexFix.Patches.ClusterReorderPatch: Clusters reordering. Prevented 11074 reorder calls.
11:26:51.5159 [INFO]   Torch.Commands.CommandManager: Player Kontu ran command '!hm load Kontu 1'
11:26:51.5159 [WARN]   Hangar.PlayerHangar: Attempting to load grid @C:\Torch-Servers\PATCAT02\Instance\QuantumHangar\76561197982600699\Large Grid 5034.sbc
11:26:51.5316 [INFO]   Chat: Hangar (to Kontu): Spawning Complete!

SE v1.198.24

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.