1. This forum is obsolete and read-only. Feel free to contact us at support.keenswh.com

SE Server Extender and Essentials help thread

Discussion in 'Groups & Dedicated Servers' started by rexxar, Nov 21, 2015.

Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.
  1. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    As some of you may know, I've picked up the SESE and Essentials projects. If there's a problem with one of my builds, I want to know about it, so I'm creating this support thread to collect all the issues in one place.

    THREAD RULES:
    • Do not ask about how to set up your server until you have read the information on the SESE page and the Essentials page. This will solve 99% of problems.
    • If your server won't start, or if it crashes, make sure you are using the latest versions of SESE and Essentials. If you're using an old version, your problem might have already been fixed.
    • Forum searches can be finicky, but please do try to search for your issue before posting.
    • I NEED YOUR LOGS! If your server crashes, I can't fix it unless I know what's wrong! If you have a crash or failed start, run the server again with the 'debug mode' option ticked. Post your server log inside code tags. If your client is crashing when connecting to the server, I need both the client and server logs. The client log is at C:\Users\<user name>\AppData\Roaming\SpaceEngineername\SpaceEngineers.log
    How to install SESE and Essentials:
    1. Get DedicatedServer.zip. This will be in your Space Engineers directory. By default: C:\Program Files(x86)\Steam\SteamApps\SpaceEngineers\Tools\DedicatedServer.zip
    2. Extract it somewhere and set up your server as a service. Hit save, but don't hit start.
    3. Get the latest SESE here and extract everything into wherever you put the dedicated server files.
    4. Run SEServerExtender.exe as admin, and start up the server to make sure everything works.
    5. If the server works fine, hit stop and close the program.
    6. Go to your server Mods directory, it will be at C:\ProgramData\SpaceEngineersDedicated\<server instance>\Mods
    7. Create a folder and name it Essentials.
    8. Get the latest Essentials here and copy it into the Essentials folder you just created.
    9. Open up SESE, and add the Essentials mod to your list. Just paste this number in: 559202083 Be sure to hit save!
    10. Hit start, then once it's loaded go to the Plugins tab and configure Essentials however you want.
    11. Enjoy!

    Important info:
    Latest releases can always be found here:
    https://github.com/SEServerExtender/SEServerExtender/releases
    https://github.com/SEServerExtender/EssentialsPlugin/releases
    You also need a client mod: https://steamcommunity.com/sharedfiles/filedetails/?id=559202083 Just add 559202083 to your list of mods.

    When there is a new release, I'll post it in this thread. To update, stop your server, extract the new files into the appropriate directory, then restart the server.
     
    Last edited: Oct 1, 2016
    • Like Like x 4
  2. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    Thanks for doing this man.
    I would like to help out at some point actually, when I'm not worrying about finals.
     
  3. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    Still getting crashes, only on the client:
    Code:
    2015-11-22 00:53:40.903 - Thread:   1 ->  Exception occured: System.NullReferenceException: Object reference not set to an instance of an object.
       at Sandbox.Game.Entities.MyPlanet.Init(MyPlanetInitArguments arguments)
       at Sandbox.Game.Entities.MyPlanet.Init(MyObjectBuilder_EntityBase builder)
       at Sandbox.Game.Replication.MyVoxelReplicable.OnLoad(BitStream stream, Action`1 loadingDoneHandler)
       at VRage.Network.MyReplicationClient.ProcessReplicationCreate(MyPacket packet)
       at Sandbox.Engine.Multiplayer.MyMultiplayerClient.OnReplicationCreate(MyPacket packet)
       at Sandbox.Engine.Multiplayer.MyTransportLayer.ProcessMessage(Byte[] data, Int32 dataSize, UInt64 sender, TimeSpan timestamp)
       at Sandbox.Engine.Multiplayer.MyTransportLayer.HandleMessage(Byte[] data, Int32 dataSize, UInt64 sender, TimeSpan timestamp)
       at Sandbox.Engine.Networking.MyReceiveQueue.ProcessMessages(NetworkMessageDelegate handler, TimeSpan delay)
       at Sandbox.Engine.Networking.MyReceiveQueue.Process(NetworkMessageDelegate handler, TimeSpan delay)
       at Sandbox.Engine.Networking.MyNetworkReader.Process(TimeSpan lag)
       at Sandbox.MySandboxGame.Update()
       at Sandbox.Engine.Platform.Game.UpdateInternal()
       at Sandbox.Engine.Platform.FixedLoop.<>c__DisplayClass2.<Run>b__1()
       at Sandbox.Engine.Platform.GenericLoop.Run(VoidAction tickCallback)
       at Sandbox.MySandboxGame.Run(Boolean customRenderLoop, Action disposeSplashScreen)
       at SpaceEngineers.MyProgram.RunInternal(String[] args)
       at SpaceEngineers.MyProgram.Main(String[] args)
    Server remains fine, but upon finishing loading the client crashes 100% of the time. Your latest release of SESE, Essentials, and the client-side essentials mod.
    Does not change when disabling essentials so it seems to be SESE.

    I got this on my own compiled version of SESE as well. Gotta update the methods me thinks ;)...
     
  4. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    Given that old API references have caused 80% of the problems in SESE/Essentials, it's pretty likely that's the problem here. Could you run SESE in debug mode and see if it generates any useful output when the client crashes? I suspect it won't, but it never hurts to check.

    Would you mind sending me your world file? I haven't had any trouble with planets in any build of SESE. Does the world load fine with the vanilla server?

    I have some good news though: There's a whole pile of fixes coming to both SESE and Essentials Soon™
     
  5. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    I'll collect the debug logs later...as for the world, first we attempted it on our current server running the Star System scenario since it came out. Then I setup a test center with a fresh vanilla world (Star System) and it still did the same. So not sure it would be worth sending. When I ran it with our mod list, the only one I saw spit out anything in the logs was the energy shield mod which threw an exception. That wouldn't be the problem since it was crashing without the mods.

    Good to hear you got progress though...
     
  6. HeIix

    HeIix Trainee Engineer

    Messages:
    5
    Just now created an account to finally start contributing after running a 16 slot public server on my VDS for last couple of months. Thank you rexxar for starting to rull out some updates for these handy tools, I appreciate your skills and time.

    In the latest release on your SESE github page, v1.109.13.2-alpha the compiled package includes SEModAPIInternal.pdb and not .dll. I imagine this was an accident as the older packages include that specific dll. For now I'm using a SEModAPIInternal.dll that I compiled from the source of your latest release.

    Thank you again for your work, I'll post any debug logs that come up if that would help.

    -Edit-

    After playing with some commands on my public planet server, "/admin reveal force" makes it indefinitely unresponsive. It's the same Object Reference exception as Phoenix had above just a bit different. Here is the debug:
    Code:
    2015-11-23 01:18:54.8605|Info|EssentialsPlugin.ChatHandlers.AdminConceal.HandleAdminReveal+<>c__DisplayClass4_0.<HandleCommand>b__2|Conceal
    2015-11-23 01:19:27.1876|Error|EssentialsPlugin.ProcessHandlers.ProcessBlockEnforcement.Handle|System.NullReferenceException: Object reference not set to an instance of an object.
       at EssentialsPlugin.ProcessHandlers.ProcessBlockEnforcement.ScanForBlockItems()
       at EssentialsPlugin.ProcessHandlers.ProcessBlockEnforcement.Handle()
    	|System.NullReferenceException: Object reference not set to an instance of an object.
       at EssentialsPlugin.ProcessHandlers.ProcessBlockEnforcement.ScanForBlockItems()
       at EssentialsPlugin.ProcessHandlers.ProcessBlockEnforcement.Handle()
    2015-11-23 01:19:54.9040|Info|EssentialsPlugin.Essentials.Shutdown|Shutting down plugin: Dedicated Server Essentials - 1.13.4.29
    2015-11-23 01:19:55.0987|Warn|EssentialsPlugin.Essentials+<>c__DisplayClass196_0.<PluginProcessing>b__0|Handler Problems: 1000 - System.Threading.ThreadAbortException: Thread was being aborted.
       at SEModAPIInternal.API.Common.SandboxGameAssemblyWrapper.GameAction(Action action)
       at EssentialsPlugin.ProcessHandlers.ProcessDockingZone.PopulateZoneCache()
       at EssentialsPlugin.ProcessHandlers.ProcessDockingZone.Handle()
       at EssentialsPlugin.Essentials.<>c__DisplayClass196_0.<PluginProcessing>b__0()
    2015-11-23 01:19:55.1846|Info|EssentialsPlugin.ChatHandlers.AdminConceal.HandleAdminReveal+<>c__DisplayClass4_0.<HandleCommand>b__2|Conceal
    2015-11-23 01:20:02.7150|Warn|EssentialsPlugin.ProcessHandlers.ProcessRestart.<CheckResponse>b__13_0|Server unresponsive for 60 seconds, restarting in 5 seconds.
     
    Last edited: Nov 23, 2015
  7. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    The "/admin reveal force" is meant for revealing ships toggled out of "InScene" by essentials, but the exception being thrown is catching on the Block Enforcement scan so I assume you have that enabled? Any changes to your block enforcement rules while a ship might have been concealed? Might be why it's catching when trying to pull it back in.
     
  8. MightyJarJead

    MightyJarJead Trainee Engineer

    Messages:
    14
    I have just taken the path down server administration, and have been familiarizing myself with the dedicated server and this server extender - this is tremendous!

    EDIT: From @rexxar - Dialogs were broken, will be fixed at some point. Thanks!

    I will say, I can get it installed, and started using the extender, I can restart, the auto-save interval works - but I have not yet been able to get the dialog box entry screen to come up. Any thoughts?

    Code:
    <RestartWhenUnresponsive>true</RestartWhenUnresponsive>
      <GreetingEnabled>true</GreetingEnabled>
      <GreetingMessage>xxx</GreetingMessage>
      <GreetingPublic>false</GreetingPublic>
      <GreetingItem>
    	<Enabled>true</Enabled>
    	<Title>Test-Title</Title>
    	<Header>Test-Header</Header>
    	<Contents>Test-Contents
    
    </Contents>
     
    Last edited: Nov 23, 2015
  9. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    @Helix thanks for catching the missing DLL! I updated the release file. (of course it was APIInternal; that's where I've been working. grr)

    Was concealment working before you changed to my releases?

    It sounds like block enforcement is choking when trying to scan the grids you're revealing. If you're revealing a lot of grids, or just a few big ones, that would certainly cause it to lag. I suspect that if you turn off the unresponsive restart it will recover on its own. (I also need to add a way to change the timer). Do you have access to the SESE GUI to turn on debug mode? That will put more useful information into the log.

    Dialog windows have been broken for quite some time, and they are currently my top priority. A fix is coming soon; hopefully this week or next.
     
  10. MightyJarJead

    MightyJarJead Trainee Engineer

    Messages:
    14
    Not sure if its a bug or not, but is there a way to turn off the GPS coords at the top of the screen for users? Not a big deal, just curious.
     
  11. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    There isn't, actually. I think the workaround is to install Tyrsis's waypoint mod https://steamcommunity.com/sharedfiles/filedetails/?id=363037395 (I can't remember what I did on my server)

    I don't like that feature either, so I'm gonna add a chat command to turn it off. I'll probably release it in this next update.
     
  12. MightyJarJead

    MightyJarJead Trainee Engineer

    Messages:
    14
    How much reporting do you want at the moment? I know you only just started so will find most issues as you test. I've been experimenting with the commands, and.. generally can't seem to get much to work, i.e. changing ownership of an object to a new owner - using the

    /admin change ownership command {Name} {EntityId}

    seems to do nothing (though the name is confusing, should I not use an owner ID as reported in the cubegrid?)

    Also tried using the
    /owner {EntityId} {OwnerId}

    And this crashed the server..

    Its possible I'm not using the commands correctly, but either way reporting.
     
  13. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    @MightyJarJead The change ownership command has some issues; it doesn't change ownership of oxygen-related blocks for some reason.

    The correct syntax is
    Code:
    /admin ownership change <player name> <grid entity id>
    e.g.:
    /admin ownership change rexxar 1234
    It automatically pulls the player ID from their display name. Entity ID is another matter. You can find that with SESE's chat commands: /getid <entityName>
    Entity name is the name that shows up in the info tab or drop-down menu in the control panel. If the name has spaces, wrap it in quotes
    Code:
    /getid "Big Red Ship"
    or
    /getid PlanetBase
    It will print the entity id into chat, then just copy that into your ownership command. You have to be an admin to use either command, obviously.

    /owner may have crashed if you used the wrong parameters. I'll take a look at it though.

    I'll also look into integrating /getid into /admin ownership change. I don't like having to type a 16 digit number in a chat command.
     
  14. MightyJarJead

    MightyJarJead Trainee Engineer

    Messages:
    14
    Thanks @rexxar! you are going to get swarmed once the word is out, everyone and his brother wants to run a server now. Better make a tip-jar (I'd donate!) Here are my results, with the log entry:

    When using this command
    Code:
    /admin ownership change "Matt Damon" 112326218809022965
    I receive the following error in the console:

    Code:
    2015-11-23 14:19:28.4159|Info|ChatHandler Error: System.InvalidCastException: Unable to cast object of
    type 'SEModAPIInternal.API.Entity.Sector.SectorObject.CubeGrid.CubeBlock.CockpitEntity' to
    type 'SEModAPIInternal.API.Entity.Sector.SectorObject.CubeGridEntity'.
       at EssentialsPlugin.ChatHandlers.HandleAdminOwnershipChange.HandleCommand(UInt64 userId, String[] words)  
       at EssentialsPlugin.Essentials.HandleChatMessage(UInt64 steamId, String message)
     
  15. HeIix

    HeIix Trainee Engineer

    Messages:
    5
    Glad I could help out. So far your latest release has been keeping my server stable longer than the vanilla software is currently capable of. The biggest issue right now is the infinite freezing which happens after a few hours of it being stable and the service doesn't know to restart because it doesn't actually crash. Fortunately, Essentials is able to restart through the unresponsive glitch.

    So far concealment has worked fine on this fresh planet world and the other asteroid server I run, this was actually the first time I have tried using the command and there were less than 40 grids when I did it. The issue arose when after a crash/restart, a player made me aware that most of his ship disappeared and that the few blocks that were left we were able to walk through. It was then that I tried using the /admin reveal force command.

    My server is an unmanaged VDS running 2012 R2 so I remote in to do everything. I had the debug option enabled but I'm not quite sure where it was logged. I'll take another look and change the destination it logs to for this instance.

    Keep up the good work rexxar! You're awesome.
     
  16. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    Does it stop there, or does it continue to change ownership of other blocks? This is probably the same problem with it not changing oxygen blocks. I'll look into it since taking ownership of the cockpit is pretty important. Unfortunately, it seems Mark Watney is not going to space today.

    @Helix Yikes. I'll add concealment to my to-do list. I had a similar issue with ghost blocks, but that was well before I started this project. Let's just hope new netcode comes soon.
     
  17. MightyJarJead

    MightyJarJead Trainee Engineer

    Messages:
    14
    No, it seems to stop there. ownership was not changed. Though, the previous owner was the same guy, but showing as "Dead". not sure if that is important.
     
  18. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    @rexxar Ok, SESE debug does not log anything around the client crash. Nada.

    It might be world related...here's what my server log managed to spit out this time:
    Code:
    ERROR Entity init!: System.ArgumentException: An item with the same key has already been added.
       at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
       at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
       at VRage.MyEntityIdentifier.AddEntityWithId(IMyEntity entity)
       at Sandbox.Game.Entities.MyEntity.Init(MyObjectBuilder_EntityBase objectBuilder)
       at Sandbox.Game.Entities.MyCubeGrid.InitInternal(MyObjectBuilder_EntityBase objectBuilder, Boolean rebuildGrid)
       at Sandbox.Game.Entities.MyEntities.InitEntity(MyObjectBuilder_EntityBase objectBuilder, MyEntity& entity)
    This is with no mods except for your NewEssentials. Client log I posted above still has the same exception.

    Edit: Brand new world did not fix it on Star System or Earth start...
    I should note that I'm using the two extensions, wvm wrr, which enable voxel streaming.
    Gonna try it without those...

    Edit*: Turns out it was the voxel streaming extensions, which totally makes sense now lol...we might want to prioritize fixing that considering the impact of world size...

    Edit**: Back again, looks like the problem is specifically ServerNetworkManager.cs
    I think that SendWorldData needs to be updated (along with essentials) to send the new planet data since the purpose of "wvm" and "wrr" arguments are to replace the original server request methods and it's obviously out-of-date.
     
    Last edited: Nov 24, 2015
  19. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    ServerNetworkManager is indeed very broken. Most of the methods it uses have been changed or just deprecated. This is actually the cause of most of the problems in SESE. It needs a lot of work, and I'm pretty hesitant to do it, with the new netcode coming. I don't know how much Keen is going to change, and I really don't want to spend three weeks rewriting the SESE API only to start over again the next week =\

    I honestly don't know if I can fix voxel streaming. Judging by comments in the code, tyrsis had a lot of trouble, and we ended up with a hack. I'll look into it, but I can't make any promises. Certainly don't expect a fix any time this year.
     
    • Agree Agree x 1
  20. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    I wish Keen was more communicative in this regard considering the impact SESE has on the dedicated server presence. It's not like they have to hold our hands or anything, but just give us some idea of what is in store, structurally.
    I think part of why they don't though is because of how improvised they are week to week...
     
  21. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    If I were Keen, I wouldn't like SESE. It attaches to the server process and accesses game functions that Keen deliberately left out of the API. As you mentioned with voxel streaming, we can intercept client requests and generate our own response. SESE can pretty much take complete control over the server process, surely you can see how that could be dangerous?

    I think Keen has just been looking the other way. They may not like SESE, but it's important that we have it right now. If someone started using the SESE API to do bad things to clients, they'd probably lock us out.

    This is all just wild speculation on my part, though. I am grumpy about all the changes in the SE source, but they appear to be improvements, so I GUESS I'll deal with it.

    Keen doesn't like to talk about their work because there are too many kids here that think "Laid framework for X" means "X will be done in ten minutes". When they don't get their pet feature, they throw tantrums and spew hate and abuse. We've all seen it happening around here. I really, truly, do not blame them for keeping quiet. I do wish they'd give us more in the way of change logs though.
     
  22. Capsuna

    Capsuna Apprentice Engineer

    Messages:
    117
    Hey guys, quick question..

    Trying to setup a cleanup which deletes everything without beacon or power. So i had it running the last few days on delete noownership and it was working fine. This morning i switched it to delete nobeacon and nopower and it isnt working. I get an error about the argument is to long.. So i think i have the wrong scan commands in the Essentials config...

    -<CleanupTriggerItems>

    <SettingsCleanupTriggerItem>
    <LastRan>2015-11-25T07:53:57.4205086-05:00</LastRan>
    <NotificationItemsRan/>
    <Enabled>true</Enabled>
    <ScanCommand>nopower nobeacon</ScanCommand>
    <MaxCapacity>25</MaxCapacity>
    <MinutesAfterCapacity>10</MinutesAfterCapacity>
    <Reason>**Cleanup initialized... Deleting ALL entities without a BEACON FRAME AND POWER in 10 minutes!**</Reason>
    </SettingsCleanupTriggerItem>
    </CleanupTriggerItems>

    what is the proper way to put the scan command in?
     
  23. gornyakmaniac

    gornyakmaniac Apprentice Engineer

    Messages:
    186
    @Capsuna use "nopower excludesblocktype:beacon:1" to delete all ships without both beacon AND energy. Or make two cleanups with "nopower" and "nobeacon" at the same time to delete all ships without beacon OR energy
     
  24. 88ToM

    88ToM Trainee Engineer

    Messages:
    38
    hi rexxar! there is a bug with /admin scan inactive command, this is an old issue for an important command: 2015-11-29 12:43:03.1135|Info|EssentialsPlugin.Essentials.HandleChatMessage|ChatHandler Error: System.NullReferenceException: Object reference not set to an instance of an object.
    at EssentialsPlugin.ChatHandlers.HandleAdminScanInactive.HandleCommand(UInt64 userId, String[] words)
    at EssentialsPlugin.Essentials.HandleChatMessage(UInt64 steamId, String message)
     
  25. PhoenixTheSage

    PhoenixTheSage Junior Engineer

    Messages:
    677
    That just reminded me, I too would like to see that one fixed. That is a huge performance helper for busy servers where a lot of people move through. You always have people who stop coming back and their stuff could last for months depending on their power reserves and it would be nice to have the efficiency of that command back.
     
  26. Draygo

    Draygo Senior Engineer

    Messages:
    1,297
    Keen is fine with SESE but they are not going to let it impact their development decisions and let it make more work for them. They are going to continue to develop their own game, we just have to adapt to their changes.
     
    • Agree Agree x 1
  27. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    @88ToM @PhoenixTheSage Would you believe that that bug was a typo? Someone forgot some parentheses at the end of a function call. You'll have a fix Monday afternoon!

    I'm super excited to push this next update. Lots of good stuff coming!
     
    • Like Like x 2
  28. 88ToM

    88ToM Trainee Engineer

    Messages:
    38
    rexxar very thank you! I requested this fix a lot of time ago! I added you on steam, so if i find any bug i will send you the log!
     
  29. Capsuna

    Capsuna Apprentice Engineer

    Messages:
    117
    So I am trying to setup motd... I am in game and use the /settings setmotd and i get this error in game:
    -Unabled to find setting: setmotd

    when i type just /motd i get this:
    -No MOTD dialog defined on server.

    So how exactly do i set up the motd? I can't find anything that really guides me...
    Here is what i tried: In the plugins tab i set information true. I set subcommand to motd and subtext to a message.
    If i do /info motd i get the first line of text i wrote but nothing else. I was expecting a dialog to appear?
    Is MOTD one of the GreetingItems? if so which one? I am able to get a message to everyone as soon as they join but thats about it.

    Also, i have tried using /help or /help dialog and nothing seems to happen. I get an error in the console when i type just /help

    Thanks!
     
  30. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    If it says unable to find setmotd, either you don't have Essentials updated or you have an information item bound to /settings. If you have access to the GUI, the chat commands aren't terribly useful; it is a lot more cumbersome. The MOTD is the greeting item. It is the dialog window that shows up when a player logs in.

    I didn't give any information on setting up the commands because there is nothing to set up. If Essentials is up to date, the commands are there. As I wrote in the update notes, typing "/help dialog /settings setmotd" will bring up a dialog with details and examples.
     
Thread Status:
Not open for further replies.
This last post in this thread was made more than 31 days old.