Jump to content

Administration Systems


Kil

Recommended Posts

The Open Beta release will feature both In-Game and Remote Administration.

In-Game Administration

For the Open Beta release, Renegade X will use a slightly enhanced version of the built-in admin system (used by UT3).

Overview:

There are two levels of access:

Server Administrator (from UT3) which has full access to all admin commands.

Server Moderator (temporary addition) which has access to the admin commands except for the "Admin" command (basically rcon, can execute commands directly on the server) and AddAdmin/Mod commands.

Commands:


  • AdminLogin(Password) - Use this to login as an Admin or Moderator, two separate passwords are defined in the game configuration.
    AdminLogout - Logout of Admin
    AdminKick(Player) - Kicks a player from the server.
    AdminKickBan(Player) - Bans a player from the server permanently (bans can be manually revoked).
    AdminForceTextMute(Player) - Removes a players ability to use chat.
    AdminForceTextUnMute(Player) - Restores a muted players ability to use chat.
    AdminRestartMap - Restarts the map. (The vote will still be displayed, but will have no effect)
    AdminRestartMap(MapName) - Changes to the specified map. (Again, the vote will be displayed, but will have no effect)

[ADMIN ONLY]


  • Admin(Command) - Execute the given command as the server itself.
    AdminAddAdministrator(Player) - Adds the given players SteamID to the Administrator SteamIDs list.
    AdminAddModerator(Player) - Adds the given players SteamID to the Moderator SteamIDs list.

There are a few other of the UT3 Admin commands not listed here that are still floating around but they either don't work completely/have no use in RenX.

To login, passwords are required, but an additional security layer available is SteamID authentication.

Configuration:

In UDKRenegadeX.ini, under [RenX_Game.Rx_AccessControl]


  • ModPassword - The password to login as a Server Moderator when using AdminLogin command or AdminPassword parameter
    bBroadcastAdminIdentity - True or False, defines whether admin logins are broadcast to all players.
    bSteamAuthAdmins - True or False, whether you'll require admins/mods to be authenticated with Steam.
    AdministratorSteamIDs - Steam3 ID in Hex, an ID that is authorised to use Administrator if bSteamAuthAdmins is True.
    ModeratorSteamIDs - 64-bit Steam3 ID in Hex, an ID that is authorised to use Moderator if bSteamAuthAdmins is True.

In UDKGame.ini, under [Engine.AccessControl]


  • AdminPassword - The password to login as a Server Administrator when using AdminLogin

Setting up Steam Admins:

  • REMEMBER, admins/mods will still need to login with AdminLogin when using Steam Admins, Steam Admins just restricts the SteamIDs who are allowed to use the AdminLogin command. Auto-Steam Auth will be a future option.

First, make sure you have bSteamAuthAdmins=true. Next, there are two ways to go about it:

1) Add them by player in-game.

Use the AdminAddAdministrator/AdminAddModerator commands. This way you won't have to deal with IDs directly, the game will do it for you.

Though in order to get the first admin added, you either need to add them straight to the file (see below) or follow these steps:

  • 1. Set bSteamAuthAdmins to False (and restart server if already running).
    2. Get in-game and login as Admin.
    3. Add yourself with the AdminAddAdministrator command.
    4. Set bSteamAuthAdmins to True and restart server.

2) Add them by ID to the file.

You'll need to retrieve your 64-bit Steam3 ID in Hexadecimal format. vacbanned.com will do this, just chuck in the Steam Profile link in the search bar, and you'll see Steam3 ID (64bit). Copy the one that has (Hex) next to it.

Paste it under Rx_AccessControl, next to either AdministratorSteamIDs= or ModeratorSteamIDs=. You add multiple SteamIDs just by adding a new line with the same key name. Example:

AdministratorSteamIDs=11000010003c480
ModeratorSteamIDs=11000010002a490
ModeratorSteamIDs=11000010503cd60

You'll notice when you run the game, and re-look at the config, the IDs will change (ie 11000010003c4ca will become 0x011000010003C4CA). That's just the game converting them to the correct format, this is normal.

Remote Administration

A remote-console (rcon) system is available for Renegade X. It has two functions; one is to execute commands directly on the server (like that of the in-game "Admin" command), and two it streams out game information.

Configuration:

The password for Rcon is the same as AdminPassword (In UDKGame.ini, under [Engine.AccessControl])

In UDKRenegadeX.ini, under [RenX_Game.Rx_Rcon]


  • bEnableRcon - True or False, whether you want to enable Rcon or not.
    RconPort - number TCP port that Rcon will listen on. -1 means it is the same number port as the game itself (so in most cases, 7777).

Tweaks - recommended left as default unless you have specific needs.


  • ConnectionLimit - Max number of connections allowed at once.
    SubscriberLimit - Max amount of connections that are allowed to be subscribed at once. You shouldn't set this too high - UE3 TCP connections aren't meant for high load, so you may potentially notice in-game performance drop. (Though this is based on what has been stated on the UDN, haven't actually stress-tested it.)
    MaxPasswordAttempts - Number of password attempts to allow before banning an IP.
    bHideAttempts - True or False, whether to show their attempt number and max attempts.

  • Like 1
Link to comment
Share on other sites

RxCmd is a 5 minute app with several holes as per the preceding "shitty program is up" and should not be relied on for protocol details other than the obvious. The protocol in the release is not in a complete state, it was brought to a level to be operational for basic server administration (not for third party tool development) and it has already been updated internally. Therefore it is not recommended for people to place too much effort into third party tools until it is ready for it. Once the complete version is available to the public, a proper protocol spec will be put up but until then, don't expect support.

Link to comment
Share on other sites

Hi, not sure if this is the right place to ask but does someone know where I can find information about server-side modding?

My experience is mostly in doing (large) x86 assembly patches for old C&C games like Red Alert, Tiberian Sun and Renegade. I also did some anti-cheat, modding/mapping utilities (in C#), a fan service for playing old C&C games online on (CnCNet v5), a lot of Renegade server-side software used by all C&C Renegade servers (C++ and x86 asm) and obviously also reverse engineering the games.

Was wondering if there are any pointers about the server-client protocol Renegade X uses, especially in terms of what is possible to mod server-side without issue, and what requires the client to download additional files or requires the writing of tricky code (like creating certain network events in Renegade with special intentions).

Where can I find the documentation for server-side modding with Renegade-X? What requires the usage of x86 asm and reverse engineering the UDK? Are the RenegadeX exeuctable and/or any of the DLLs it uses recompiled between releases? I'm kinda worried about changing offsets.

I'd also like to write my own Renegade X launcher. What protocol is used for querying the server list? Is it GameSpy? (I have experience writing software which communicates with the GSA master server for Renegade Servers, and with the encrypted client<->master server protocol)

Thanks in advance!

Link to comment
Share on other sites

I'd be interested!

Also, is there a way to make join messages and such on the servers? (Not too familiar with UT3 hosting.)

Depends on how you are managing the server. As far as I am aware there is nothing that will internally keep track of messages.

A simple perl or mIRC bot could parse commands like !setjoin from regular chat and then store the join message.

It could then look for someone joining with the same player name or Steam ID and send a message to the server with the corresponding join message.

Link to comment
Share on other sites

I'd also like to write my own Renegade X launcher.

Just parse this JSON. I've asked for the current map name to be added to the data, but it may be a few weeks before it gets added.

As for the other stuff, I think the most portable way to create serverside mods is through mutators

Link to comment
Share on other sites

I'd be interested!

Also, is there a way to make join messages and such on the servers? (Not too familiar with UT3 hosting.)

Depends on how you are managing the server. As far as I am aware there is nothing that will internally keep track of messages.

A simple perl or mIRC bot could parse commands like !setjoin from regular chat and then store the join message.

It could then look for someone joining with the same player name or Steam ID and send a message to the server with the corresponding join message.

I don't think one is made since they are going to make changes how the servers will work. But as of now, it is possible to do join messages, medals, etc. We are just waiting for the server side changes the dev team is going to make.

Or if someone helps me with teh TCP part I can make an IRC bot with all that stuff.

Link to comment
Share on other sites

I'd be interested!

Also, is there a way to make join messages and such on the servers? (Not too familiar with UT3 hosting.)

Depends on how you are managing the server. As far as I am aware there is nothing that will internally keep track of messages.

A simple perl or mIRC bot could parse commands like !setjoin from regular chat and then store the join message.

It could then look for someone joining with the same player name or Steam ID and send a message to the server with the corresponding join message.

I don't think one is made since they are going to make changes how the servers will work. But as of now, it is possible to do join messages, medals, etc. We are just waiting for the server side changes the dev team is going to make.

Or if someone helps me with teh TCP part I can make an IRC bot with all that stuff.

mIRC has built in socket support, you'll probably need to play with it a bit if you want it to work. I would also not recommend using an mIRC bot indefinitely, right now RCON doesn't send much info, but mIRC can get bogged down and start missing data being sent if there is too much. Perl, C#, C++ or whatever you are most comfortable with would be better.

Off the top of my head:

alias ConnectToRCON {
 sockopen RenX 127.0.0.0 7777
}

alias IdentifyToServer {
  sockwrite RenX adminlogin PASSWORD
}

on *:sockread:RenX {
  ;get your incomming data here with sockread()
}

alias SendCommand {
  ;sockwrite RenX command extrainfo
  sockwrite RenX say hello world
}

Link to comment
Share on other sites

  • 6 months later...
  • 1 year later...

Although the application no longer works, there's still a good chunk of information about configuring in-game related stuff in here. Honestly, a little bit of an update and a replacement application might not be a bad idea, which maybe I'll get around to eventually if I can remember.

Link to comment
Share on other sites

  • 2 years later...
  • Agent unpinned this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...