GameOvermind

1356718

Comments

  • wakeboarderwakeboarder Join Date: 2004-09-05 Member: 31388Members, NS2 Playtester
    Thanks for this mod we were able to kick an a hole from our server who has been a asshat for some time now "mista sista" your hard work is not overlooked by as at #156
    keep it up for the love of the game. Scottie
  • TidomannTidomann Join Date: 2011-01-18 Member: 78041Members
    I'd like to say thankyou as well! Overmind has been proving pretty successful in managing our server!

    -Tidomann
  • RulgrokRulgrok Join Date: 2007-04-04 Member: 60559Members
    Just an add - can you get it to write bans to the config file? they only seem to hold until server reset. Any idea?
    Thanks.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    I certainly can, but I originally planned to do that after the upcoming version, as I wanted to spend some time on making a neat XML-format for storing\reading bans. But as v4 seems to still work perfectly for everyone, I suppose I can do it for the upcoming version right now (/me pushes release date back even further).

    In the mean time, there is of course still the 'NS2GmOvrmind.AddBan'-function for permanent-banning.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    The latest (small) NS2-build broke the mod due to a change made in the way chat-text was being handled. Commands still arive and are processed, but the text-feedback is malfunctioning. So I'll try and release v5 tommorow (with some of the improvements available, others disabled as they're not finished yet).
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    How will V5 handle client crashes? It's my understanding that in V3, you are able to rejoin the server if you already have a player with your steam_id in the game, but in V4 you cannot join until that player times out.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    It kicks the player that was already on the server (assuming it to be a timed-out client).
  • w0dk4w0dk4 Join Date: 2008-04-22 Member: 64129Members, Constellation, Reinforced - Shadow
    Looking forward to v5 :)
  • MCMLXXXIVMCMLXXXIV Join Date: 2010-04-14 Member: 71400Members
    Thanks for the info! I will merge this with combat mode and do a new release once it's out.

    For now combat mode is in "version limbo". Need to work on some kind of auto-updating installer!
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited March 2011
    I've put up v5.

    Now I must stress that this version isn't supposed to be out there yet, as I was right in the middle of working on numerous features, but the new NS2-build forced it to release. Notes regarding this version, what's working:
    <ul><li>Priviliges implemented for both users and guests</li><li>Anti command-flooding mechanism</li><li>Reserved-slots</li><li>A bunch of new console-commands</li></ul>What's working but not finished:
    <ul><li>A custom server-query responder: this is almost finished, so I've decided to have it on by default</li><li>RCon: this is working (few commands and logging-functionality), but it doesn't have a ban-mechanism for too many password-attempts, so it's disabled by default.</li><li>Web-statistics (this is NS2-EmbdStats, which I've merged into this mod): working, but far from optimized and thus disabled by default.</li></ul>What's not working at all:
    <ul><li>Ban file-storage: not functional at this point.</li></ul>

    You might also noticed a couple of DLLs alongside the NS2GmOvrmind-directory. These are the Qt-library which the mod dynamically links to, and the Visual C++ 2010-runtime DLLs which in turn Qt dynamically links to. You need to extract the whole of the .zip like you would normally (the DLLs should end up in the same directory as NS2.exe\Server.exe).

    Please do post about any irregularities\bugs\performance-problems you encounter.

    [EDIT]
    Also, you need to closely inspect the new config-file, as a lot has been added and changed.
  • MCMLXXXIVMCMLXXXIV Join Date: 2010-04-14 Member: 71400Members
    Thanks for releasing this. I have updated combat mode to include it and am about to do a new release of that too. Then I'm taking a week off!

    New features look really good! Can't wait to try it out.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    I knew it would crash, but thats half the fun.

    First the server was in this state as I posted about in the other thread, i was unsure why a couple of ghost players had Chanman's steamid. <a href="http://unknownworlds.com/ns2/forums/index.php?showtopic=112854&st=20&p=1835929&#entry1835929" target="_blank">http://unknownworlds.com/ns2/forums/index....p;#entry1835929</a>

    I crashed, and rejoined, Now one of them has Invinci's steamID, and one has HaMbUsH's.

    <a href="http://img163.imageshack.us/i/listing2.png/" target="_blank"><img src="http://img163.imageshack.us/img163/3392/listing2.png" border="0" class="linked-image" /></a>

    I then decided to kick those players om_kick 3 and it crashed. But I half expected it to, I wanted the console log back.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Why can't you people stop crashing :)

    It's starting to look like a nasty engine-problem, see <a href="http://www.unknownworlds.com/forums/index.php?showtopic=112854&pid=1835935&st=20&#entry1835935" target="_blank">here</a>.
  • Alpha.Alpha. Join Date: 2011-01-04 Member: 76186Members
    Thank you especially for reserved slots functionality.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    I haven't gotten round to updating the start-post, as there's just so much new information to document. But to create a reserved-slot, simply use "NS2GmOvrmind.Server.SetMaxSlots(#);" and "NS2GmOvrmind.Server.SetReservedSlots(#);". Then in order to add players for these slots, create a new user and include the "NS2GmOvrmind.Priviliges.ReservedSlot"-privilige.
  • Alpha.Alpha. Join Date: 2011-01-04 Member: 76186Members
    I assume NS2GmOvrmind.Priviliges.ReservedSlot i included in NS2GmOvrmind.Priviliges.All? So if I add a user as an admin - he'll have reserved slot automatically?
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    "NS2GmOvrmind.Priviliges.All" indeed includes all possible "NS2GmOvrmind.Priviliges".
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    I've put up v6, this one fixes a tiny error in the query-responder, adds a ban-mechanism to RCon (making it safe to use now), and cleaned up the webstatistics-server (now making this ok to use too).
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    I have V6 running. It mentions V5 a couple of times when launching, but also mentions V6. And I'm not sure I have the query responder overwriting the defualt one yet. My config is set to true, but doing a qstat:
    <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>qstat.exe -a2s 203.12.139.127:27016 -R -P
    ADDRESS PLAYERS MAP RESPONSE TIME NAME
    203.12.139.127:27016 0/14 maps/ns2_tram.level 86 / 2 naturalselection2 Au
    stralia-Pure NS2
    protocol=7,gamedir=naturalselection2,gamename=naturalselection2,dedicate
    d=1,sv_os=windows,secure=1,version=1.0.0.0
    </div>

    And here's my config so we don't need to go back and forth. Password, users and bans removed.
    <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>NS2GmOvrmind.NS2.SetBuild(166);
    NS2GmOvrmind.WebAdmin.SetEnabled(true);
    NS2GmOvrmind.WebAdmin.SetConsoleHistoryDepth(15);
    NS2GmOvrmind.Server.SetName("Australia-Pure NS2");
    NS2GmOvrmind.Server.SetExternalIP("203.12.139.127");
    NS2GmOvrmind.Server.SetExternalPort(27015);
    NS2GmOvrmind.Server.SetIsPassworded(false);
    NS2GmOvrmind.Server.SetMaxSlots(14);
    NS2GmOvrmind.Server.SetReservedSlots(0);
    NS2GmOvrmind.ServerQuery.SetEnabled(true);
    NS2GmOvrmind.ServerQuery.AddListenPort(NS2GmOvrmind.Server.GetExternalPort());
    NS2GmOvrmind.ServerQuery.AddListenPort(NS2GmOvrmind.Server.GetExternalPort()+1);
    NS2GmOvrmind.ServerQuery.SetUpdateInterval(0.333);
    NS2GmOvrmind.RCon.SetEnabled(true);
    NS2GmOvrmind.RCon.AddListenPort(NS2GmOvrmind.Server.GetExternalPort()+1);
    NS2GmOvrmind.RCon.SetSynchronizationInterval(0.333);
    NS2GmOvrmind.RCon.AddPassword("removed");
    NS2GmOvrmind.WebStats.SetEnabled(false);
    NS2GmOvrmind.WebStats.AddListenPort(8081);
    NS2GmOvrmind.WebStats.SetUpdateInterval(3);
    NS2GmOvrmind.WebStats.SetHTMLFeedEnabled(true);
    NS2GmOvrmind.WebStats.SetJSONFeedEnabled(true);
    NS2GmOvrmind.WebStats.SetCSVFeedEnabled(true);
    NS2GmOvrmind.WebStats.SetPHPFeedEnabled(true);
    NS2GmOvrmind.WebStats.SetRSSFeedEnabled(true);
    NS2GmOvrmind.Priviliges.ConsoleCommand_HELP +
    NS2GmOvrmind.Priviliges.ConsoleCommand_MODINFO +
    NS2GmOvrmind.Priviliges.ConsoleCommand_SERVERINFO +
    NS2GmOvrmind.Priviliges.ConsoleCommand_PING)
    NS2GmOvrmind.SetGuestPriviliges(NS2GmOvrmind.Priviliges.None +
    NS2GmOvrmind.Priviliges.ConsoleCommand_HELP +
    NS2GmOvrmind.Priviliges.ConsoleCommand_MODINFO +
    NS2GmOvrmind.Priviliges.ConsoleCommand_SERVERINFO +
    NS2GmOvrmind.Priviliges.ConsoleCommand_PING);
    NS2GmOvrmind.SetAntiCommandFloodInterval(3);
    NS2GmOvrmind.Bans.SetActiveWorkFile(string.format("%s\\Configuration\\ActiveBans.xml",NS2GmOvrmind.Name.Internal));
    </div>
  • w0dk4w0dk4 Join Date: 2008-04-22 Member: 64129Members, Constellation, Reinforced - Shadow
    So, I have a question. What should I do if I run more than one server on one installation? They'd all reference to the same overmind configuration file..
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited March 2011
    <!--quoteo(post=1836159:date=Mar 6 2011, 02:25 AM:name=endar)--><div class='quotetop'>QUOTE (endar @ Mar 6 2011, 02:25 AM) <a href="index.php?act=findpost&pid=1836159"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I have V6 running. It mentions V5 a couple of times when launching, but also mentions V6. And I'm not sure I have the query responder overwriting the defualt one yet. My config is set to true, but doing a qstat:

    And here's my config so we don't need to go back and forth. Password, users and bans removed.<!--QuoteEnd--></div><!--QuoteEEnd-->
    If you're talking about "Natural Selection 2 (using NS2-GmOvrmind(v5))", that's just an error on my part, I have to update it manually and I forgot to this time around. The rest of the console-messages should read NS-GmOvrmind(v6).

    Have you opened the 27015 & 27016 inbound UDP-ports (and 27016 inbound TCP if you're using RCon)? I've only tested it on my local-machine, but I'll put it on a server and see if it still works correctly externally.

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->So, I have a question. What should I do if I run more than one server on one installation? They'd all reference to the same overmind configuration file..<!--QuoteEnd--></div><!--QuoteEEnd-->
    You're right, and at the moment I can't think of any way of telling which Server.exe-instance is loading the configuration-file (in order to differentiate settings). The only way right now would be to clone the entire directory (including NS2.exe\Server.exe et cetera) and configure the NS2GmOvrmind.Server-settings individually. I'll brainstorm on this one.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Okay, I've accidentally had it listening to the localnetwork-interface (127.0.0.1), it should work now (I've uploaded v7). Also another problem that I was affraid of might show up, has, namely that Spark is blocking the UDP-ports with it's own query-responder, so I decided to up the ports of the Overmind-queryresponder\RCon by 1. So the current situation is this:

    Assuming your server is using connect-port 27015:
    <img src="http://1690247.websites.xs4all.nl/NS2GmOvrmind/portdiagram.png" border="0" class="linked-image" />
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Looking good.
    <div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>qstat.exe -a2s 203.12.139.127:27017 -R -P
    ADDRESS PLAYERS MAP RESPONSE TIME NAME
    203.12.139.127:27017 0/14 ns2_tram 48 / 0 natural selection 2 Australia-Pure NS2
    protocol=F,gamedir=natural selection 2,gamename=Natural Selection II,dedicated=1,sv_os=windows,version=166,uptime=0h 1m 7s 112ms,netstat_tickrate=31,mp_friendlyfire=0,cheats=false</div>

    I noticed that the response on this query is MUCH faster than the default query.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited March 2011
    I can confirm that. Spark's responder has about 30ms of latency when run locally, while Om's lag is what you would expect: 0-1ms.

    [EDIT]
    I just noticed it's not correctly reading out your kill-count. Oh well, nothing serious, it can wait.
  • PlasmaPlasma Join Date: 2003-04-26 Member: 15855Members, Constellation, Squad Five Blue
    player; can you get this ported to the game by Max (the query part). It seems to work better than whatever is in use at the moment, and looks like steam://connect/203.12.139.127:27017 URLs may work.
  • PlasmaPlasma Join Date: 2003-04-26 Member: 15855Members, Constellation, Squad Five Blue
    player: I notice theres a few variables different or missing between your query and qstat's query.

    Some of them I think are important to allow steam://connect/ URLs to work for example and adding a server to favorites (which you can't do right now in Steam -> Servers -> Favourites for example).

    Trying to add a server that way shows the server initially in the 'Add Server' window but then you cannot add it to your favourites (it does not appear).

    NS2 Query:
    --
    203.12.139.127:27016 0/14 0/0 maps/ns2_tram.level 17 / 2 naturalselection2 Australia-Pure NS2
    protocol=7,gamedir=naturalselection2,gamename=naturalselection2,bots=0,dedicated
    =1,sv_os=windows,secure=1,version=1.0.0.0,game_port=27015,hostport=27015,game_tag
    = ¤0
    @166|ns2

    Overmind Query:
    ---

    ADDRESS PLAYERS MAP RESPONSE TIME NAME
    203.12.139.127:27017 0/14 0/0 ns2_tram 5 / 0 natural selection 2 Australia-Pure NS2
    protocol=F,gamedir=natural selection 2,gamename=Natural Selection II,bots=0,dedicated=1,sv_os=windows,version=166,uptime=8h 47m 6s 103ms,netstat_tickrate=31,mp_friendlyfire=0,cheats=false

    I also notice the 'VAC Secured' icon did not appear for your query port when trying to add the server to Steam favourites.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    You are right that there are still a few extra data-fields I haven't included into the query, however even when I do, I'm not sure connecting via steam's server-window will be possible until steam has explicitly added this game to it's filter (as you can't seem to add Spark's default query-responder to favorites either).

    The VAC (or lack thereof) is intentional, as I don't believe NS2 actually uses that at this point (the variable is passed, but qstat by design only displays it if it is 1).
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Okay, I've added some additional data-fields for the next version, here's a test-readout:
    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->>qstat -a2s 127.0.0.1:27017 -R
    ADDRESS PLAYERS MAP RESPONSE TIME NAME
    127.0.0.1:27017 0/14 0/0 ns2_rockdown 0 / 0 natural selection 2 My NS2-server
    protocol=F,gamedir=natural selection 2,gamename=Natural Selection II,bots=0,dedicated=1,sv_os=windows,version=166,game_port=27014,hostport=27014,g
    ame_tag=«╬.☺x▌ƒ►▄'♥r☻ns2;naturalselection2;v166,uptime=0h 0m 8s 316ms,netstat_tickrate=30,mp_friendlyfire=0,cheats=false<!--QuoteEnd--></div><!--QuoteEEnd-->
    The game_tag appears garbled at the start, but I see this with every server out there (CS:S\TF2), so it's either a qstat-problem, or normal behaviour.

    It still can't be added to your favorites (as expected), it does however show up in your LAN-tab (and presumably the Internet-tab as well if Steam activates that functionality):
    <img src="http://1690247.websites.xs4all.nl/NS2GmOvrmind/steamlan.png" border="0" class="linked-image" />
    However, it will only show up if it's game_port value differs from what is already present in the list. In this case, the Spark-queryresponder supplied the 192.168.1.10:27015 connect-adress, so I've had to (temporarely) set the Om-responder to 192.168.1.10:27014 to get it to show up.

    I'm going to hassle max to add a killswitch for Spark's built-in queryresponder, so I can position Overmind's in it's place.
  • PlasmaPlasma Join Date: 2003-04-26 Member: 15855Members, Constellation, Squad Five Blue
    I've got a GS report about the query problem at <a href="http://getsatisfaction.com/unknownworlds/topics/server_query_reports_wrong_join_port_and_steam_connect_broken" target="_blank">http://getsatisfaction.com/unknownworlds/t..._connect_broken</a> fyi
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Max indicated that SteamWorks is operating on port 27016 (or connectport+1), as does the query-responder. So disabling it for the sake of replacing the query-responder isn't possible at this point. An option would be for Max to move the query-responder to a seperate port (or at least unique port-protocol combo), though I don't think it's appropriate to ask for something like that right now, given the amount of work that is needed still on more serious matters (server-performance, crashes, poor FPS and whatnot).

    I've had a peek at the GSF-link Plasma, and I'm pretty sure it should work correctly (even if it doesn't right now). A connect\responder-port mismatch shouldn't pose a problem, as I believe that's what the Extra Data Flag 0x80 in the query is for (server's game port #).

    So for the moment the situation will be as visualized in the diagram I posted earlier (here it is again):
    <img src="http://1690247.websites.xs4all.nl/NS2GmOvrmind/portdiagram.png" border="0" class="linked-image" />
Sign In or Register to comment.