GameOvermind

playerplayer Join Date: 2010-09-12 Member: 73982Members
edited July 2012 in Modding
<div class="IPBDescription">Admin-modification for NS2</div>I've temporarily stopped working on this mod, until NS2's release-day, at which point I will take another look if the game is worth the (still) extraordinary time required to make the rewrite of GameOvermind fully functional. If something breaks in the current NS2GmOvrmind-version in circulation, and there is demand for a fix, I will of course oblige.

A poignant post I made about it in another thread:
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->Unaware of zombiehellmonkey's reasons, but I can certainly sympathise. I think I'm going to drop all work related to NS2 until it has been released, and reassess from there on if it is worth further pursuing some of the ideas I've had. I guess it's a combination of the immense amount of grind-work that still remains to be done, while NS2 is giving very little motivation in return. As well as the uncertainty how things will develop in terms of performance for the v1.0-release, which if you've spent any time on these forums will know I'm a bit pessimistic about.

If the game turns out to run really really well, and gain significant popularity, I'll feel confident enough to continue pouring time into it. Release is only 3 months away, so we'll know soon enough. And it's not as if time has been wasted, dedicated-servers\modding has become such a rarity on the PC-platform these days, any game that steps up and re-introduces these is worth my time (regardless if things haven't turned out for the best).<!--QuoteEnd--></div><!--QuoteEEnd-->

The TS has been backed up in the post below, in case work on the rewrite continues and I'll need it again. UWE put together a working admin-system <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=119169" target="_blank">here</a>, switching to it might be advisable (certainly if you're just setting up a new server), as this admin-mod is no longer actively being developed (and lacks some core-features such as file-storage).
«13456718

Comments

  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited July 2012
    [ This post is backed up in case it is needed in the future ]

    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b>Note:</b><!--sizec--></span><!--/sizec-->
    This topic-start is being rewritten for the version currently in development (v20 also known as the rewrite), and is not applicable to the current version (v19). In terms of adding users\bans, it is better to simply open the Lua configuration-files as they are fully up-to-date, and very self-explanatory.


    <div align='center'><!--sizeo:6--><span style="font-size:24pt;line-height:100%"><!--/sizeo--><b><!--coloro:#8B0000--><span style="color:#8B0000"><!--/coloro-->GameOvermind<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec--></div>
    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>Description</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    GameOvermind is a feature-rich admin-mod that allows for server-operators to administrate their servers more effectively and with great ease. Besides the core-features an admin-mod should posses (kicking\banning and similar functions), it also sports many advanced peripheral functions such as:
    <ul><li>A RCon-emulator (for use with for example HLSW or PHP-scripts)</li><li>A replacement Query-responder (containing many improvements over NS2's default version)</li><li>File- & SQL-storage facilities (for on-site or remote storage of users\admins and bans of several sub-systems).</li><li>Reserved-slots (tie-in with the replacement query-responder)</li><li>Very high levels of debug-message verbosity (very useful for modders or advanced server-operators)</li><li>An built-in IRC-bot for broadcasting game-events\chats to a channel, as well as administrating the server from said channel [Work in progress, not yet functional in the current version]</li><li>A game-recorder & player (for recording games to a file and playing them back at a later time, useful for casters and very important for the competitive scene in particular)</li></ul>
    </blockquote>
    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>Download</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    Direct Download Link: - [0.0Mb]

    The download-checksum is:
    <u>-</u> - <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->MD5<!--sizec--></span><!--/sizec-->: <b>0</b> ;; <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->CRC32<!--sizec--></span><!--/sizec-->: <b>0</b>
    </blockquote>


    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>Installation</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->System requirements<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote><ul><li>Natural Selection 2, <u>Build</u>: <b>Any</b> (this mod does not alter any NS2-files and is thus build-independent)</li><li>A few socket-ports (assuming default set-up):
    <ul><li><u>UDP-port</u>: <b>27015</b> (for connecting clients)</li><li><u>UDP-port</u>: <b>27016</b> (for SteamWorks)</li><li><u>UDP-port</u>: <b>27017</b> (for GameOvermind's QueryResponder & MasterGameServer)</li><li><u>TCP-port</u>: <b>27017</b> (for GameOvermind's RCon-emulator)</li></ul></li></ul></blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Extract<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote>
    Simply drag the GameOvermind-directory from inside the zip-file into your NS2-directory (Steam\steamapps\common\natural selection 2).
    </blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Run<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec--><blockquote>
    In order to run the mod, a simple "-game GameOvermind" commandline-parameter needs to be appended to, either NS2.exe in the case of Listen-servers, or Server.exe in the case of Dedicated-servers.
    </blockquote></blockquote>

    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>In-Depth Documentation</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Console-commands<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote>
    Communication with NS2-GmOvrmind occurs via the command-console. When clients ingame send a command to the server, it is evaluated by the mod, and the results sent back to the client's console.

    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_help<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Lists all the available commands to the sending-client.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    The available mod-commands.
    <u><b>Remarks</b></u>:
    If the user doesn't have the <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.InaccessibleCommandsVisible<!--colorc--></span><!--/colorc-->-privilige, only available commands are displayed.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_HELP<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_login<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>string</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Login-name<!--colorc--></span><!--/colorc-->> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>string</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Login-password<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Enables the sending-client to log in to the mod.
    <u><b>Parameters</b></u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> Login-name<!--colorc--></span><!--/colorc-->
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> Login-password<!--colorc--></span><!--/colorc-->
    <u><b>Returns</b></u>:
    Whether or not the login has been succesfull.
    <u><b>Remarks</b></u>:
    If no parameters are passed it will attempt to auth you using your Steam-ID.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_LOGIN<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_purgelogins<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Forcibly logs out all the currently logged-in users\admins.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    Whether or not the purge has been succesfull.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_PURGELOGINS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_logout<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Enables the sending-client to logout of the mod.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    Whether or not the logout has been succesfull.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_LOGOUT<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_serverstatus<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Displays (technical) information regarding the server.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    Technical information regarding the server.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_SERVERSTATUS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_serverinfo<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Displays (general) information regarding the server.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    General information regarding the server.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_SERVERINFO<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_modstatus<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Displays (technical) information regarding this modification's operating-status.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    Technical information regarding this modification's operating-status
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_MODSTATUS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_modinfo<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Displays (general) information regarding this modification.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    General information regarding this modification.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_MODINFO<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_listusers<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Lists all the users present in the internal database.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    All the users present in the internal database
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_LISTUSERS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_listbans<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Lists all the bans present in the internal database.
    <u><b>Parameters</b></u>:
    Nothing.
    <u><b>Returns</b></u>:
    All the bans present in the internal database.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_LISTBANS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_addbots<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NumBots<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Adds the specified amount of bots.
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> NumBots<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the bot(s) was\were successfully added.
    <u><b>Remarks</b></u>:
    If no bot-count is specified, a single bot will be added.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_ADDBOTS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_removebots<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NumBots<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Removes the specified amount of bots.
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> NumBots<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the bot(s) was\were successfully removed.
    <u><b>Remarks</b></u>:
    If no bot-count is specified, a single bot will be removed.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_REMOVEBOTS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_setbots<!--colorc--></span><!--/colorc--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NumBots<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Sets the amount bots to what has been specified.
    <u>Parameters</u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> NumBots<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the bot-count was\were successfully set.
    <u><b>Remarks</b></u>:
    If more bots than the parameter specifies are present, the excess-bots will be kicked, if there are fewer, then bots are added to fill the shortcoming.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_SETBOTS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_cheats<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Value<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Changes to value of the 'cheats'-variable to what has been specified.
    <u>Parameters</u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Value<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the variable has successfully been changed.
    <u><b>Remarks</b></u>:
    If no value is specified, the current value will be displayed.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_CHEATS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_players<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Lists all the players (including bots), and their respective Overmind-ID, to the sending-client.
    <u><b>Parameters</b></u>:
    None.
    <u><b>Returns</b></u>:
    Every player\bot and their Overmind-ID, Steam-ID, Team-ID and login-status.
    <u><b>Remarks</b></u>:
    Steam-IDs are displayed in their classic form (STEAM_0:n:x).
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_PLAYERS<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_kick<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Kicks the player(s) that hold(s) the relevant Overmind-ID(s).
    <u><b>Parameters</b></u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <u><b>Returns</b></u>:
    Whether or not the kick(s) was\were succesfull.
    <u><b>Remarks</b></u>:
    The Overmind-IDs specified in this command will be kicked in the order they were passed in.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_KICK<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_reasonkick<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>string</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Reason<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Kicks the player(s) that hold(s) the relevant Overmind-ID(s), and sends the specified reason.
    <u><b>Parameters</b></u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> Reason<!--colorc--></span><!--/colorc-->
    <u><b>Returns</b></u>:
    Whether or not the kick(s) was\were succesfull.
    <u><b>Remarks</b></u>:
    The reason is sent via a chat-message 3 seconds before the kick is executed.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_REASONKICK<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_delaykick<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Delay<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u><b>Description</b></u>:
    Waits the specified amount of time (Delay), then kicks the player(s) that hold(s) the relevant Overmind-ID(s).
    <u><b>Parameters</b></u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Delay<!--colorc--></span><!--/colorc-->
    <u><b>Returns</b></u>:
    Whether or not the kick(s) was\were succesfull.
    <u><b>Remarks</b></u>:
    The standard Delay-value is 3 seconds.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_DELAYKICK<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_ban<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Bans (and subsequently kicks) the player(s) with the given Overmind-ID(s).
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether or not the kick-ban(s) was\were succesfull.
    <u><b>Remarks</b></u>:
    The Overmind-IDs specified in this command will be banned (and kicked) in the order they were passed in.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_BAN<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_slay<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Slays the player(s) with the given Overmind-ID(s).
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether or not the slay was succesfull.
    <u><b>Remarks</b></u>:
    Spectators or players in the Ready-Room cannot be slayed.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_SLAY<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_eject<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Ejects the player(s) with the given Overmind-ID(s) from any commanding position(s) they're in (CC(s) or Hive(s)).
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether or not the eject(s) was\were succesfull.
    <u><b>Remarks</b></u>:
    This will not prevent ejected players from re-entering the CC\hive.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_EJECT<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_rename<!--colorc--></span><!--/colorc--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->> <<!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> NewNickname<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Attempts to rename the player with the given Overmind-ID to <NewNickname>.
    <u>Parameters</u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->integer<!--colorc--></span><!--/colorc--></i> Overmind-ID<!--colorc--></span><!--/colorc-->
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> NewNickname<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether or not the rename was succesfull.
    <u><b>Remarks</b></u>:
    This does not constitute a permanent nick-change (upon rejoin\map-change the nickname reverts to it's former value again).
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_RENAME<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_endround<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Winner<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Ends the current ongoing round, and optionally declares the specified team as winner.
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Optional]<!--sizec--></span><!--/sizec--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Winner<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the round was succesfully ended.
    <u><b>Remarks</b></u>:
    If no winner is specified, the team of the sending-client will be declared winner.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_ENDROUND<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_restartround<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Restarts the current ongoing round.
    <u>Parameters</u>:
    None.
    <u>Returns</u>:
    Whether the round was succesfully restarted.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_RESTARTROUND<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_playerteam<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Team-ID<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Moves the specified player(s) into the specified team.
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->
    <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Team-ID<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the player(s) was\were succesfully moved.
    <u><b>Remarks</b></u>:
    The specified player(s) is\are forcibly moved, thus any team-inequality is disregarded.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_PLAYERTEAM<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_giveplasma<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Plasma<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Adds the specified plasma-amount to the specified player(s).
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Overmind-ID<!--colorc--></span><!--/colorc-->
    <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Plasma<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the specified plasma was succesfully granted to the specified player(s).
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_GIVEPLASMA<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_givecarbon<!--colorc--></span><!--/colorc--> <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--><<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Team-ID<!--colorc--></span><!--/colorc-->> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Carbon<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Adds the specified carbon-amount to the specified team(s).
    <u>Parameters</u>:
    <!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->[Variadic]<!--sizec--></span><!--/sizec--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Team-ID<!--colorc--></span><!--/colorc-->
    <!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>integer</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Carbon<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the specified carbon-amount was succesfully granted to the specified team(s).
    <u><b>Remarks</b></u>:
    This command is only effective on the Marine (#ID 1) and Alien (#ID 2) team.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_GIVECARBON<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_servercommand<!--colorc--></span><!--/colorc--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>string</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Command<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Executes the specified command on the server-commandline.
    <u>Parameters</u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> Command<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the command was succesfully executed.
    <u><b>Remarks</b></u>:
    None.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_SERVERCOMMAND<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote><blockquote>
    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->om_luainstruction<!--colorc--></span><!--/colorc--> <<!--coloro:#008080--><span style="color:#008080"><!--/coloro--><i>string</i><!--colorc--></span><!--/colorc--> <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->Instruction<!--colorc--></span><!--/colorc-->><!--sizec--></span><!--/sizec-->
    <blockquote>
    <u>Description</u>:
    Executes the specified Lua-instruction inside the Server-VirtualMachine environment.
    <u>Parameters</u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro--><i><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->string<!--colorc--></span><!--/colorc--></i> Instruction<!--colorc--></span><!--/colorc-->
    <u>Returns</u>:
    Whether the command was succesfully executed.
    <u><b>Remarks</b></u>:
    Use this command with extreme caution, as it is very easy to pass an invalid instruction and potentially destabilize the server.
    <u><b>Privilige-variable</b></u>:
    <!--coloro:#FFFF00--><span style="color:#FFFF00"><!--/coloro-->NS2GmOvrmind.Priviliges.ConsoleCommand_LUAINSTRUCTION<!--colorc--></span><!--/colorc-->
    </blockquote></blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Web-Administration<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote>
    </blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->RCon-Administration<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote>
    </blockquote>
    <!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b><!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro-->Web-statistics<!--colorc--></span><!--/colorc--></b><!--sizec--></span><!--/sizec-->
    <blockquote>

    Besides the stats-page for normal viewing, an array of feeds are available for off-site data-processing.

    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->JSON (JavaScript Object Notation)<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec--><blockquote>
    A .js-file that can be included in Java-scripts on pages that are hosted elsewhere entirely, from which variables with the stats-data are available.</blockquote>

    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->CSV (Tab Seperated Values)<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec--><blockquote>
    While CSV stands for Comma Seperated Values of course, in this particular case they are tab-seperated (which is completely legal). This is done because server-names might (or rather, most likely) contain spaces in them, thus ruling out the use of spaces for any other purpose. CSV-files are very general-purpose can be used in any environment.</blockquote>

    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->PHP (Serialize)<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec--><blockquote>
    A PHP-file that can be retrieved from within another PHP-script (hosted at a remote location), and from which variables containing the stats-data can be retrieved. A good tutorial to accomplish this can be found <a href="http://www.udvox.net/?p=184" target="_blank">here</a>.</blockquote>

    <!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro-->RSS (XML)<!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec--><blockquote>
    Essentially an XML-file, which are pretty much universally supported by scripts\parsers.</blockquote>
    </blockquote>
    </blockquote>
    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>F.A.Q</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    Nothing here yet...
    </blockquote>
    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>Troubleshooting</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    Nothing here yet...
    </blockquote>
    <!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><!--coloro:#4169E1--><span style="color:#4169E1"><!--/coloro--><b>Version history</b><!--colorc--></span><!--/colorc--><!--sizec--></span><!--/sizec-->
    <blockquote>
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v20 (Rewrite)</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>Work in progress...</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v19</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>19-6-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v18</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>5-5-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v17</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>5-5-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v16</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>23-3-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v15</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>22-3-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v14</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>25-2-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v13</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>24-2-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v12</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>19-2-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v11</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>18-2-2012</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v10</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>16-4-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v9</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>13-4-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v8</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>30-3-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v7</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>6-3-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v6</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>5-3-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v5</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>3-3-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v4</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>26-1-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v3</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>24-1-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v2</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>13-1-2011</i><!--colorc--></span><!--/colorc-->) ]
    [ <!--coloro:#9932CC--><span style="color:#9932CC"><!--/coloro--><u><b>v1</b></u><!--colorc--></span><!--/colorc--> (<!--coloro:#FF8C00--><span style="color:#FF8C00"><!--/coloro--><i>27-12-2010</i><!--colorc--></span><!--/colorc-->) ]
    </blockquote>
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->The real milestone here (besides providing a level of administrating-abilities not at all present in the game yet), is that this modification operates without modifying a single file of the default NS2 Lua-files (which is exceedingly difficult, but possible).<!--QuoteEnd--></div><!--QuoteEEnd-->I'm quite curious how you pulled this off. Care to explain?
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Override game_setup.xml with a copy that points to your Lua-file as the top-level script. In your Lua-file manually include NS2's original top-level script (Server.lua or Client.lua depending on which VM you're working on). As Event.Hook is defined by the engine, it is available even before any NS2-files are included, thus you can hook into events before NS2 does. Further more there are of course the method-, function- and variable-overriding you can perform after NS2's top-level script has been included.
  • MCMLXXXIVMCMLXXXIV Join Date: 2010-04-14 Member: 71400Members
    This technique is brilliant! Will have to take a look.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Uploaded version 1 of the mod.
  • scorpydudescorpydude Join Date: 2005-03-05 Member: 43603Members
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Thank you player! just what I was looking for. Works great.

    After seeing enough lerks outside the map and hydras in RR its good to find this.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Finding this mod made me look further into the mods forum. This may be a silly question, but is it possible to run this with your stats mod? <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=111390" target="_blank">http://www.unknownworlds.com/ns2/forums/in...howtopic=111390</a>
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Ah, I have given that some thought. It's technically actually very easy to do with my mods, as they aren't interfering with the game (or other mods) at all. Two reasons why I hadn't gotten around to it: I heard through the grape-vine someone else was actually creating such a platform already; and I didn't really expect people (outside of the enthousiasts) to run my mods at this point, let alone multiple at the same time!

    So what I'll do is I will create a mod-loader that's designed specifically to deal with my DLL-mods, this isn't much of a task, and I won't make anyone else's work redundant.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    Hi Player,

    Now, dont take this as a "WTF YOUR MOD JUST MAKES IT CRASH" post.

    My question is, is there a possibility of it causing a crash? The server ive been running has been pretty stable for the whole of 160, but recently ive had a couple of crashes. First one it was up for a while, second crash it hadnt been running long. Is there any way I can find out what is causing it, or anything I can pass along to help you.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    I immediately subjected the mod to some additional scrutiny when I read your post, but have not been able to get it to crash. Trouble is, NS2 has the tendency to crash all on it's own, so it's hard to tell what exactly is going on. So a few questions to help clarify the problem:

    Are you running a listen- or a dedicated-server?
    Are you in the server yourself?
    Are there other players besides yourself?
    Are there bots in the server?
    Have you modified the game's Lua-files?
    What did the crash look like? (did the game simply close, was there a standard windows-notification or NS2's crash-dialog)
    Were you there at the time of the crash?
    What were you doing at the exact time of the crash?

    Thanks for the feedback.
  • RulgrokRulgrok Join Date: 2007-04-04 Member: 60559Members
    Player if you want to be awesome see if you can install a votekick function that might toggleable and performed by normal uses allowing them to kick off a player say if more than 60% vote too?
  • CamronCamron Join Date: 2011-01-06 Member: 76356Members
    Any plans of going open source?
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    <u>Are you running a listen- or a dedicated-server?</u>
    Dedicated.
    <u>Are you in the server yourself?</u>
    I assume you mean playing? Yes and no, I've been there when it crashed.
    <u>Are there other players besides yourself?</u>
    There have been (server was full with 14), Another time with 10, and once it has happened with only me in the server (metnioned again below).
    <u>Are there bots in the server?</u>
    Never.
    <u>Have you modified the game's Lua-files?</u>
    The only modification I have made to the games is as follows:
    1: This mod
    2: Obvious changes such as name/IP
    3: Couple of batch files to restart server when it leaks memory past 1.9gb
    So no lua modifications.
    <u>What did the crash look like? (did the game simply close, was there a standard windows-notification or NS2's crash-dialog)</u>
    Clients: simply a timeout
    Server: The console will just stop displaying, 2/3 times there has been no information. One time it displayed something about a lua overflow not being available, and "PreChangeName"
    It also shows the "This application has experienced a problem. Close?"
    <u>Were you there at the time of the crash?</u>
    This one is hard to say.
    I was told by a player that it crashed the instant he got into the comm chair. Only seen (heard of that) happening once.
    It may have something to do with players leaving the game/joining? I'm not sure but i have that feeling after seeing some disconnects cause it, but havnt seen it enough for it to be a useful metric.
    Also once it crashed right before I logged into the admin mod (empty server, only I had joined). But this could have been coincidence, EG:
    time 0:00.00 server up
    time 0:23.00 I joined server
    time 0:45.00 I type the om_login command
    And the server either crashed due to me typing it, or before I typed it and hadnt noticed the server was dead, since it gave me no feedback.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1822799:date=Jan 9 2011, 03:35 AM:name=Rulgrok)--><div class='quotetop'>QUOTE (Rulgrok @ Jan 9 2011, 03:35 AM) <a href="index.php?act=findpost&pid=1822799"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Player if you want to be awesome see if you can install a votekick function that might toggleable and performed by normal uses allowing them to kick off a player say if more than 60% vote too?<!--QuoteEnd--></div><!--QuoteEEnd-->
    As I understand it the game currently does not synchronize Lua-files to the client. As soon as that is possible, it would be trivial to create a vote-system like L4D's (a simple slick-looking GUI). As it stands, a vote-kick system would be possible by having players send a console-command indicating whether they support the kick-vote, not unlike how it was done in the days of HL1. I plan to work on this when banning becomes possible (with the introduction Steam-IDs), as kicking someone without at least a temporary-ban wouldn't be much of a deterrent for griefers.

    <!--quoteo(post=0:date=:name=Camron)--><div class='quotetop'>QUOTE (Camron)</div><div class='quotemain'><!--quotec-->Any plans of going open source?<!--QuoteEnd--></div><!--QuoteEEnd-->
    Yes and no. I will gladly paste any pieces of code that demonstrate how the mod functions, however, pasting the entire source-code integrally (at least to the point where people can compilate their own binaries) is very difficult. The reason for this is that I make use of a personal code-base that I would also have to open-source for the mod to work at any level.

    <!--quoteo(post=0:date=:name=endar)--><div class='quotetop'>QUOTE (endar)</div><div class='quotemain'><!--quotec-->Are you running a listen- or a dedicated-server?
    Dedicated.
    Are you in the server yourself?
    I assume you mean playing? Yes and no, I've been there when it crashed.
    Are there other players besides yourself?
    There have been (server was full with 14), Another time with 10, and once it has happened with only me in the server (metnioned again below).
    Are there bots in the server?
    Never.
    Have you modified the game's Lua-files?
    The only modification I have made to the games is as follows:
    1: This mod
    2: Obvious changes such as name/IP
    3: Couple of batch files to restart server when it leaks memory past 1.9gb
    So no lua modifications.
    What did the crash look like? (did the game simply close, was there a standard windows-notification or NS2's crash-dialog)
    Clients: simply a timeout
    Server: The console will just stop displaying, 2/3 times there has been no information. One time it displayed something about a lua overflow not being available, and "PreChangeName"
    It also shows the "This application has experienced a problem. Close?"
    Were you there at the time of the crash?
    This one is hard to say.
    I was told by a player that it crashed the instant he got into the comm chair. Only seen (heard of that) happening once.
    It may have something to do with players leaving the game/joining? I'm not sure but i have that feeling after seeing some disconnects cause it, but havnt seen it enough for it to be a useful metric.
    Also once it crashed right before I logged into the admin mod (empty server, only I had joined). But this could have been coincidence, EG:
    time 0:00.00 server up
    time 0:23.00 I joined server
    time 0:45.00 I type the om_login command
    And the server either crashed due to me typing it, or before I typed it and hadnt noticed the server was dead, since it gave me no feedback.<!--QuoteEnd--></div><!--QuoteEEnd-->
    Ah yes this definitely indicates the mod was at least some of the times at fault. It looks like additional error-handling is needed as Lua-errors aren't really supposed to occur ever (even if the mod's panicking internally, it shouldn't leak over to Lua). Thanks for the excellent feedback, and I suggest you not run it at least until I put up a new version (unless you're feeling lucky).
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    No worries, thanks for putting in the time to make this.

    I have another crash which you may find relevant (happened minutes ago).

    Server was low pop, myself and 1 other person. On the server log I thought I saw 3 people, but only 2 in game. It crashed shortly after.

    A player joins (as in their IP address is noted), but they never make it to the naming stage, he timed out before receiving a name (either real or NSPlayer), I received an error as a client which I failed to properly screenshot, and heres a screen of the server log (sending via PM due to IP addresses etc).

    The client error was "Failed to remove flash player, there has not been any added. Use (some function of getflashplayer)."
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1822822:date=Jan 9 2011, 06:20 AM:name=endar)--><div class='quotetop'>QUOTE (endar @ Jan 9 2011, 06:20 AM) <a href="index.php?act=findpost&pid=1822822"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->A player joins (as in their IP address is noted), but they never make it to the naming stage, he timed out before receiving a name (either real or NSPlayer), I received an error as a client which I failed to properly screenshot, and heres a screen of the server log (sending via PM due to IP addresses etc).<!--QuoteEnd--></div><!--QuoteEEnd-->
    Yes I can picture exactly how and where this would cause a serious problem in the code. Again it's because I haven't put in (enough) error-handling. Basically I'm assuming Lua will always function properly and pass me correct data, while in fact it is quite the opposite and Lua should be treated as utterly unreliable (the reason for this is mostly because NS2 is still so very unstable).

    <!--quoteo(post=1822822:date=Jan 9 2011, 06:20 AM:name=endar)--><div class='quotetop'>QUOTE (endar @ Jan 9 2011, 06:20 AM) <a href="index.php?act=findpost&pid=1822822"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->The client error was "Failed to remove flash player, there has not been any added. Use (some function of getflashplayer)."<!--QuoteEnd--></div><!--QuoteEEnd-->
    Interestingly enough this could actually just be NS2 at fault here, as I have this error in the console quite frequently when just playing the (vanilla) game.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    <!--quoteo(post=1822824:date=Jan 9 2011, 03:32 PM:name=player)--><div class='quotetop'>QUOTE (player @ Jan 9 2011, 03:32 PM) <a href="index.php?act=findpost&pid=1822824"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Interestingly enough this could actually just be NS2 at fault here, as I have this error in the console quite frequently when just playing the (vanilla) game.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Yea it's a common error, i don't know if it caused the crash, could've just been the last thing that happened, completely unrelated.
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    Great admin mod! NS2 really needs something like this right now. Are you planning to add any additional commands? I quickly skimmed the SM command list and pulled the following commands that I think might be useful for NS2.

    <b>Admin-only commands</b>
    <ul><li>Slay – Kills a player</li><li>Map – Changes to specified map</li><li>Setnextmap – Sets next map in cycle to specified map</li><li>Mute – Restricts target’s voice chat</li><li>Gag – Restricts target’s text chat</li><li>Silence – Restricts target’s text and voice chat</li><li>Unmute - Unrestricts target’s voice chat</li><li>Ungag - Unrestricts target’s text chat</li><li>Unsilence - Unrestricts target’s text and voice chat</li><li>Say – Gives a text chat message to all players</li><li>Chat – Gives a text chat message to all admins</li><li>Vote – Starts an vote with answers specified in the arguments</li><li>Cancelvote – Cancels current vote</li></ul>

    <b>All-player commands</b>
    <ul><li>Voteslay – Starts a vote to kill the target</li><li>Votekick – Starts a vote to kick the target</li><li>Votemute – Starts a vote to mute the targets voicechat</li><li>Votemap – Starts a vote to change to the specified map</li><li>Votenextmap – Starts a vote to set the next map to the specified map</li></ul>

    I'd say slay and mute are probably the most useful ones that aren't in your admin mod. Also, the say/chat system could also be implemented in argument form (e.g. using @admin are part of the arguments for the say command) rather than making a separate command. The vote commands would probably be the lowest priority, but I've found them to be useful while admining in other games/mods.

    Also, I'm preferential to passive vote commands as a good way to reduce the need for 24/7 admin coverage on a server.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1823021:date=Jan 10 2011, 02:50 AM:name=ScardyBob)--><div class='quotetop'>QUOTE (ScardyBob @ Jan 10 2011, 02:50 AM) <a href="index.php?act=findpost&pid=1823021"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Great admin mod! NS2 really needs something like this right now. Are you planning to add any additional commands? I quickly skimmed the SM command list and pulled the following commands that I think might be useful for NS2.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I already have several commands pending to be implemented, usually what holds one back are the technical limitations of NS2's Lua-interface. A sum-up of the suggestions you made:
    * Slay – This is trivial, and I'll have it in next version.
    * Map – This is technically not possible yet (I'm sure you've noticed servers always run the same map during their life-time).
    * Setnextmap – See above.
    * Mute – Support for voice-chat is primitive, but the lua-code appears to allow for a mute-function, I don't think it'll be in the next version though.
    * Gag – This can be easely done, and I'll see if it gets in next version.
    * Silence – See the 2 above.
    * Unmute - See Mute.
    * Ungag - See Gag.
    * Unsilence - See Silence.
    * Say – Something like globay-say but proxy'd (and possibly masked) by the mod? Should be in quite soon.
    * Chat – This can be easely done, and I'll see if it gets in next version.
    * Vote – This is do-able, but requires a tiny bit of effort.
    * Cancelvote – See above.

    Regarding the player vote-commands, the commands themselfs aren't very difficult, but making sure a vote goes smooth and text-messages are recieved and sent in the right direction does take a bit of scrutiny.

    Now when I say next version I might actually mean the version after the one I'm working on now. The stability issues are what my #1 concern is at the moment, and I won't start on seriously expanding functionality until the mod is fully stable (which I think is quite logical).
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    I have a question about the problem with no uniqueID/steamID and not being able to ban. How does Steam know who you are currently playing with, and who you have recently played with. Steam seems to be able to link people ingame to their steam accounts. Am I missing something obvious? or is there just not enough information to find out how steam gets that info.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    edited January 2011
    It depends on the game. Most games on steam aren't really related to steam specifically, and just use it as a launch-platform. Other games (such as the HL-, CS- and L4D-series) are intertwined with steam, and thus can make use of steam's systems (such as SteamIDs and master-list server-queries). NS2 appears to be the latter, and thus has access to these steam-features. Spark has access to the SteamIDs, but there simply isn't a function yet to expose these to the Lua-script. It should be in very soon.
  • MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
    <!--quoteo(post=1823342:date=Jan 11 2011, 11:30 AM:name=player)--><div class='quotetop'>QUOTE (player @ Jan 11 2011, 11:30 AM) <a href="index.php?act=findpost&pid=1823342"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->It depends on the game. Most games on steam aren't really related to steam specifically, and just use it as a launch-platform. Other games (such as the HL-, CS- and L4D-series) are intertwined with steam, and thus can make use of steam's systems (such as SteamIDs and master-list server-queries). NS2 appears to be the latter, and thus has access to these steam-features. Spark has access to the SteamIDs, but there simply isn't a function yet to expose these to the Lua-script. It should be in very soon.<!--QuoteEnd--></div><!--QuoteEEnd-->
    It's in!
  • Slickk-Slickk- Join Date: 2007-11-26 Member: 63019Members
    Awesome.

    *Readies ban-hammer*
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    For those interested, it concerns the 'GetUserId'-method of the 'ServerClient'-object. It returns an integer (a double actually, as all numbers are floating points in Lua) that contains the digested form of the classic SteamID format, which can be computed like so: STEAM_0:n:x -> 2x+n. So if we have STEAM_0:1:12345678, the SteamID-number returned by the 'GetUserId'-method will be 2*12345678+1 = 24691357.

    I'll have a new version of the mod out within a day or two. Amongst other things, it'll have auto-login via SteamID, banning (also via SteamID naturally) and improved stability.
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    <!--quoteo(post=1823503:date=Jan 12 2011, 05:03 PM:name=player)--><div class='quotetop'>QUOTE (player @ Jan 12 2011, 05:03 PM) <a href="index.php?act=findpost&pid=1823503"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'll have a new version of the mod out within a day or two. Amongst other things, it'll have auto-login via SteamID, banning (also via SteamID naturally) and improved stability.<!--QuoteEnd--></div><!--QuoteEEnd-->

    wow, thats all I can say.

    Great work player.
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    edited January 2011
    Seconded. Your admin mod is getting better by the minute.
  • XuXuXuXu Join Date: 2011-01-01 Member: 76096Members, Reinforced - Silver
    edited January 2011
    nice job! We use it on our 161 Server and it works fine! Also in combination with the <b>NS2Monitor</b>. Looking forward for the next version with om_ban! :)

    just a question beside: What will <b>om_eject</b> and <b>om_rename</b> do?
  • RulgrokRulgrok Join Date: 2007-04-04 Member: 60559Members
    i imagine one ejects commander and the other renames and individual
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    I've uploaded v2, new commands are: om_ban, om_eject, om_slay and om_rename. I wanted to test it a bit more before release, but seeing as people are now using a potentially unstable version, I decided to go ahead and post it anyway. It should be nice and stable now, as I've done away with the contrived nick-tracking mechanism, and am now using SteamIDs to track players.

    It should be noted that it doesn't yet store bans on the disk. This means that the om_ban-command ingame will create a ban that lasts as long as the server-process does. If you are really keen on banning someone permanently though, you can make use of the NS2GmOvrmind.AddBan-function as described in the start-post.

    <!--QuoteBegin-'XuXu'+--><div class='quotetop'>QUOTE ('XuXu')</div><div class='quotemain'><!--QuoteEBegin-->just a question beside: What will om_eject and om_rename do?<!--QuoteEnd--></div><!--QuoteEEnd-->
    Rulgrok got it right. There's also a description of every command in the start-post, or you can simply use the om_help-command ingame.

    I'd like to add that if you notice any kind of instability, don't hesitate to post about it. Although it should be noted that, at the moment, NS2 doesn't need the help of GmOvrmind to lag and crash, but it's better to be safe.
Sign In or Register to comment.