Jump to content
coconut

[Release] Sturmovik Server Control

Recommended Posts

~S~

 

 Have something that seems abnormal.

A tank battle commences in a region, and my airfield in that region disappears? 

Reappears after the battle (next rotation)

In the generated mission, everything is there but the spawn points .

Is this how it works?

 

Thanks

 

Help appreciated

Mox

 

 

 

 

Edited by II./JG1_Schulte

Share this post


Link to post
Share on other sites

Here is an attempt at listing the loadouts for the Dora 190-D9. I've done this by subtracting 1 from the in-game loadout number, which seems to work for other planes.

 

Loadout 0: MG131/MG151

Loadout 1: MG131/MG151 + SD70-4

Loadout 2: MG131/MG151 + SC250

Loadout 3: MG131/MG151 + SC500

Loadout 4: MG131/MG151 + WGr.42 x 2

Loadout 8: MG131/MG151 + R4M Orkan x 26

Loadout 9: Empty

  • Thanks 1

Share this post


Link to post
Share on other sites

Hello.

I'm testing the program as a ban utility.
First question.
Banned the user for a day, but after 24 hours he did not disappear from the ban.

It would be logical that after the term of the ban, the ban was shot automatically.

Is this a bug or is it intended?

thank

2019-05-13_095518.jpg

Edited by Rizer

Share this post


Link to post
Share on other sites

Note that the search will find any user, banned or not. Note also that SSC has to be running for the ban to be revoked.

How did you establish that the user was still banned after 24h?

Share this post


Link to post
Share on other sites

Hello.
Since at the moment there is no stable working program to manage the user ban for the Dserver.

I decided to try your program for these purposes.

 

After about a week of work on the main server (Wings of Liberty) I discovered the following.
1. Every 15 seconds, one processor core is fully loaded by the StrumovServerControl process, which is bad for the delays of the Dserver itself.
2. Process took for itself 3 GB of memory, leak?

ScreenShot:

Скрытый текст

t server contrl load.jpg

 

I would be very grateful for the answer.
Thank!

PS. 
Tried to write in lichku, but could not, "the user does not accept messages"

 

Edited by Rizer

Share this post


Link to post
Share on other sites
6 hours ago, Rizer said:

After about a week of work on the main server (Wings of Liberty) I discovered the following.
1. Every 15 seconds, one processor core is fully loaded by the StrumovServerControl process, which is bad for the delays of the Dserver itself.
2. Process took for itself 3 GB of memory, leak?

Hi Rizer,

 

Do you have these problems only when SSC has been running for a week, or does it happen also right after starting the process?

I haven't run SSC through a memory profiler, so yes, it's possible there are leaks.

Share this post


Link to post
Share on other sites
17 часов назад, coconut сказал:

Do you have these problems only when SSC has been running for a week, or does it happen also right after starting the process?

Especially not watched, but certainly not from the very beginning.
Now launched again, until everything is in order.

Share this post


Link to post
Share on other sites

Hi I just downloaded the latest SSC and attempted to setup.  I have set my config.yaml file up and when I go to run the setpassword.exe file it locates the config.yaml file but comes up with this error.

 

Unhandled Exception: SharpYaml.SyntaxErrorException: (Lin: 25, Col: 24, Chr: 1175) - (Lin: 25, Col: 27, Chr: 1178): While parsing a quoted scalar, find unknown escape character.
   at SharpYaml.Scanner.ScanFlowScalar(Boolean isSingleQuoted)
   at SharpYaml.Scanner.FetchFlowScalar(Boolean isSingleQuoted)
   at SharpYaml.Scanner.FetchNextToken()
   at SharpYaml.Scanner.FetchMoreTokens()
   at SharpYaml.Scanner.InternalMoveNext()
   at SharpYaml.Parser.GetCurrentToken()
   at SharpYaml.Parser.ParseBlockMappingValue()
   at SharpYaml.Parser.StateMachine()
   at SharpYaml.Parser.MoveNext()
   at SharpYaml.EventReader.MoveNext()
   at SharpYaml.EventReader.Allow[T]()
   at SharpYaml.EventReader.Expect[T]()
   at SharpYaml.Serialization.Serializers.ScalarSerializerBase.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.TagTypeSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.AnchorSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.SerializerContext.ReadYaml(Object value, Type expectedType)
   at SharpYaml.Serialization.Serializers.DefaultObjectSerializerBackend.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItems(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadMember(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadMembers[TStart,TEnd](ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.TagTypeSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.AnchorSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.SerializerContext.ReadYaml(Object value, Type expectedType)
   at SharpYaml.Serialization.Serializers.DefaultObjectSerializerBackend.ReadCollectionItem(ObjectContext& objectContext, Object value, Type itemType, Int32 index)
   at SharpYaml.Serialization.Serializers.CollectionSerializer.ReadCollectionItem(ObjectContext& objectContext, Object value, Type itemType, Int32 index)
   at SharpYaml.Serialization.Serializers.CollectionSerializer.ReadAddCollectionItem(ObjectContext& objectContext, Type elementType, CollectionDescriptor collectionDescriptor, Object thisObject, Int32 index)
   at SharpYaml.Serialization.Serializers.CollectionSerializer.ReadCollectionItems(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.CollectionSerializer.ReadMember(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadMembers[TStart,TEnd](ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.TagTypeSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.AnchorSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.SerializerContext.ReadYaml(Object value, Type expectedType)
   at SharpYaml.Serialization.Serializers.DefaultObjectSerializerBackend.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItems(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadMember(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadMembers[TStart,TEnd](ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.TagTypeSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.AnchorSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.SerializerContext.ReadYaml(Object value, Type expectedType)
   at SharpYaml.Serialization.Serializers.DefaultObjectSerializerBackend.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItem(ObjectContext& objectContext, KeyValuePair`2 keyValueType)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadDictionaryItems(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.DictionarySerializer.ReadMember(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadMembers[TStart,TEnd](ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.ObjectSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.RoutingSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.TagTypeSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.Serializers.AnchorSerializer.ReadYaml(ObjectContext& objectContext)
   at SharpYaml.Serialization.SerializerContext.ReadYaml(Object value, Type expectedType)
   at SharpYaml.Serialization.Serializer.Deserialize(EventReader reader, Type expectedType, Object existingObject, SerializerContextSettings contextSettings, SerializerContext& context)
   at SharpYaml.Serialization.Serializer.Deserialize(TextReader reader, Type expectedType, Object existingObject, SerializerContextSettings contextSettings)
   at SharpYaml.Serialization.Serializer.Deserialize(String fromText, Type expectedType, Object existingObject)
   at SharpYaml.Serialization.Serializer.Deserialize[T](String fromText)
   at FSharp.Configuration.YamlConfigTypeProvider.Parser.parse@91.Invoke(String text)
   at FSharp.Configuration.YamlConfigTypeProvider.Root.LoadText(String yamlText)
   at FSharp.Configuration.YamlConfigTypeProvider.Root.Load(String filePath)
   at Program.main(String[] argv) in D:\a\1\s\SetPassword\Program.fs:line 41

 

Does anyone have any idea what this is?

It never asked me for a password input.  Do I need to put in a hash password first in the config file then run?

Sorry for my ignorance in this as this is quite new to me.

never mind I found it for the locations of folders I still had "...."

Share this post


Link to post
Share on other sites

Hi all,

I got the SSC and campaign finally to start.  Though the campaign only restarted once (started dserver and loaded sds file and ran).  There after and before it seems it get stuck in a loop looking for RCON connection.  As dserver won't start.  it just hangs...

Do I normally have to wait a few minutes before it decides to start dserver and then establish RCON connection and load the sds file.

Also dserver will always start if I schedule a mission only in the console.  But in campaign it seems to just hang after missions are generated and resaved.

Is this normal?

I have the latest downloads of both.

 

Cheers

Share this post


Link to post
Share on other sites

It can take several minutes for the conversion from mission to msnbin. Maybe you just need to wait more. 

Share this post


Link to post
Share on other sites

After reading again what you wrote, I suspect the RCON connection between SSC and dserver does not work. That would be consistent with start working, as the system would use the commandline to launch the mission, and with map rotation not working, as this requires a working RCON.

 

Does the dserver show in its window about incoming connections? If not, then that's your problem.

Share this post


Link to post
Share on other sites

It works now!  Dserver starts up and rcon is connected. Just a few last questions which you might be able to answer off the bat. The AI difficulty seems to be easy. Is there a way to set that or is that the server preset from normal to expert cover this. If i schedule a shutdown at any time will i be able to continue where we left off or do we need to finish a round to update progress. Finally moscow autumn has 2 missions. In the campaign to play. Is this for an extended campaign version. As both created at same date. I.e. can make the playlist start with moscowautumn1 then moscowautumn2 etc. Thanks again. Cheers

Share this post


Link to post
Share on other sites
12 hours ago, HairyBrenndog said:

The AI difficulty seems to be easy. Is there a way to set that or is that the server preset from normal to expert cover this.

I don't remember what level I set for them. But if it isn't already at the max level, increasing it wouldn't be hard. I haven't made that into an option yet.

 

12 hours ago, HairyBrenndog said:

If i schedule a shutdown at any time will i be able to continue where we left off or do we need to finish a round to update progress

You need to finish the round. Can't continue an interrupted round where you left it.

 

12 hours ago, HairyBrenndog said:

Finally moscow autumn has 2 missions. In the campaign to play. Is this for an extended campaign version. As both created at same date. I.e. can make the playlist start with moscowautumn1 then moscowautumn2

Sure you can. I made a second mission because I didn't like the first one. I think the missions are usually best if they are mostly linear. The first moscow mission had two rear bases for the Soviets, which sometimes didn't play well with the campaign's AI.

Share this post


Link to post
Share on other sites

Also the server address is internal network.  How do I go about setting this up for public external access so I can implement IL2 mission planner as well as access from internet.  I've forwarded the 8083 port to the server as TCP.  Do I need to add another location for SSC to listen to in the config.yaml.   Currently I have a Dynamic DNS that directs to my current external IP address.  Would I need to make this static as well...

Share this post


Link to post
Share on other sites

Also out of curiosity there is a generic login on the first page of the SCC.

<your_server_URL>:8083

Is this a function for people to log in and view their pilot stats etc without admin access.

If so how do you setup a password with the pilot ie an account....

Share this post


Link to post
Share on other sites

It allows players to know what planes they have and where. The password is a randomly assigned PIN code displayed to them in the game after joining the server 

Share this post


Link to post
Share on other sites

For the in game pin message.  Is this straight away before flying when joining or soon after.  Ive had a couple guys try this and havent noticed a message for that.  Also for the discord log messages how are they broken up.  Ive noticed they come out at the end of each mission.  But say planes destroyed (model callup) doesnt match plane inventory (total).  Is part of it for the beginning of a mission and another as the end brief.....

 

And finally for rearming and repair is it vanilla style where you land at an airfield and rearm repair then?

Share this post


Link to post
Share on other sites
11 hours ago, HairyBrenndog said:

For the in game pin message.  Is this straight away before flying when joining or soon after

Normally, up to a minute after joining the server.

 

11 hours ago, HairyBrenndog said:

Ive had a couple guys try this and havent noticed a message for that. 

Your guys are bugged. Get new guys.

More seriously, it worked when I used it. Don't know if still does. Not gonna look into it, so if it doesn't work, you'll have to make do without it, sorry.

 

11 hours ago, HairyBrenndog said:

Ive noticed they come out at the end of each mission.  But say planes destroyed (model callup) doesnt match plane inventory (total).  Is part of it for the beginning of a mission and another as the end brief.....

Plane allocation to players is independent from actual plane numbers. At the start of a campaign you'll typically have more planes than are allocated, then as planes get bombed or strafed on the ground, people might have allocated planes that reality can't provide.

 

11 hours ago, HairyBrenndog said:

And finally for rearming and repair is it vanilla style where you land at an airfield and rearm repair then?

The campaign doesn't take advantage of that feature. In particular, there is no vehicle providing the rearm/repairs functionality.

  • Thanks 1

Share this post


Link to post
Share on other sites

Hi Coconut,

I've noticed when the score in a mission is depleted from the default 500 setting the mission round is rolled over causing it to run out of sync with the 3 hr round time limit setting and mission generator, campaign stats etc.  So I've changed it to 50000 to avoid this.  Will this effect the campaign at all when running or is this purely disconnected to the campaign and thus setting high like this to avoid a mission roll over is absolutely fine?


Finally (again!) to conquer a region, if the map seems to be static, is this due to tanks not being able to enter a region to conquer.  If so how can you allow this to happen.

Such as bombing parked tanks, supply depots factories and defences?  Is it normal to take a fair few 3hr rounds to get more movement in regions acquired?

Share this post


Link to post
Share on other sites
12 hours ago, HairyBrenndog said:

So I've changed it to 50000 to avoid this

That's the right thing to do. The campaign system does not care about the score or who wins a round.

 

12 hours ago, HairyBrenndog said:

Finally (again!) to conquer a region, if the map seems to be static, is this due to tanks not being able to enter a region to conquer.

If the defending side is strong and exceeds the maximum amount of tanks that can travel into a region to invade it (15), then the attacking side might refuse to make their move. But that's only one of the reasons, and it's not always easy to understand what the AI is thinking.

12 hours ago, HairyBrenndog said:

Such as bombing parked tanks, supply depots factories and defences?  Is it normal to take a fair few 3hr rounds to get more movement in regions acquired?

If the problem resides in strong defenses, i.e. many tanks in the defending region, the solution is to destroy those by attacking parked tanks.

It is normal to have seemingly stuck situations. It does not always happen, but sometimes it does.

  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

Sorry to bother, I have just decided to run the latest coconut campaign server from the download zipped files (one ending in 53).  Upon resetting the campaign I got this message.

image.png.bb616fcdb0fc1f47badd9e6b8e8a62e1.png

I do know that yaml file exists though could this be due to the location folder having spaces in the folder names or is there something else I will need to setup/install?

Can run campaign 52 no worries just on 53.

 

Also opening up the yaml file  I don't think any of these files exist?

image.thumb.png.3ea3dc74e93b66f61c9f30226170d394.png

Just throwing it out there.  This is all over my head but wondering if I'm to have something else added in or if the latest patches have changed anything.

Edited by HairyBrenndog

Share this post


Link to post
Share on other sites

Don’t run the latest builds, they are not functional 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Hey guys,

 

Loving the dynamic servers when I play on then. Working on the server now. The server controller works fine but I never can get it to load the campaign. Watching the logs of SSC it generates the campaign fine, but after DServer boots up it always gives this error: I can load up regular missions fine.

If I try to just load DServer by itself and choose the campaign mission file it gives the same error.

 

	Loading mission 'Multiplayer/D:\Games\IL2Dedicated\Campaign\Multiplayer\Dogfight\DynCampaign_1.mission' (Multiplayer/D:\Games\IL2Dedicated\Campaign\Multiplayer\Dogfight\DynCampaign_1)...
!!! ERROR: Mission not found
!!! ERROR: COULDN'T LOAD MISSION Multiplayer/D:\Games\IL2Dedicated\Campaign\Multiplayer\Dogfight\DynCampaign_1

 

EDIT: Never mind. The missions were in different folders. I put them in the regular game multiplayer/dogfight and it started working.

Edited by gulfy32
fix

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...