Page 1 of 14

[(X)Aseco/FAST] AutoQueue v0.75

Posted: 26 Aug 2008 18:12
by f*ckfish
AutoQueue (XAseco 1.08, Fast 3.2.x, Aseco 2.2.0c tested)
by oorf I f*ckfish aka Alexander P.

Minimum requirement: XAseco 1.08 (for the initial release there is now a version that will work with older XAsecos)

Since I don't have enough work with the menu and the widgets and the following issue quite bugged me, I had to write this plugin in the hope, a lot of people will use it.
The situation: A lot of guys will already have realized, that higher ranked servers are sometimes pretty hard to join since they are constantly full of players. If you enter as a spectator, you'll have to lay something on your "Enter" key and still there are people that join faster than you.

The solution: This plugin is an automatic management system for chronically overpopulated servers. It creates a spectator queue to let those players join first who came first. It also contains some idle kicking features.

This plugin contains no fancy graphical output, just plain old chat messages and functionality =)


AutoQueue Versions 0.75a

AutoQueue All Versions

Update v0.75a
  • Unofficial release by schmidi to fix specialchars in nickname.
Update v0.75
  • Unofficial release by schmidi to add requeue feature and fix loosing queuepos 1.
Update v0.72a
  • Unofficial release by schmidi to fix worstkick & idlekick, endless loop on pointslimit-check.
Update v0.70a
  • Unofficial release by schmidi to support the latest dedicated server builds and XAseco versions.
Update v0.60b
  • The list didn't work due to a debug line I did not comment out, sorry
Update v0.60
  • I removed XFA from the version name since it should be known by now that the queue works with XAseco, Fast and Aseco
  • Added a self-updating list that shows the current content of the queue, its properties can be configured inside "autoqueue_config.xml" (see "Configuration" section below)
  • removed inconsistency check since it only produced errors
  • Added a chat command "/queuelist" to show beforementioned list
  • Added a chat command "/queueversion" that outputs the current autoqueue version
  • changed the Worstkick (again...), now there's no safetime anymore, if a player enters a runnig round, he is automatically safe for this race, he will be made "kickable" as soon as the next track starts
  • deactivated the plugin for the time the next track is loading since I experienced a few rare abnormalities in this timeframe
  • idlekick won't kick Referees anymore
  • added a little version info at the queuebutton
  • added some console messages
Update v0.50 (XFA)
  • Dedicated Server 2008-10-07 or better required
  • changed the Worstkick to only kick the x worst positions if possible, so with a player count of 8 and a Worstkick of two it will always only try to kick position 7 and 8, it will not kick better positions
  • removed the safetime for new players and changed it to kick only official players
  • /play command in FAST won't circumvent the queue anymore
  • idlekick bugs in WarmUp should be fixed, see this post for more details
  • from now on every joining player will be put into the queue first, no matter if he joined as a player or spectator, again, for more details, see this post
  • added an experimental inconsistency check that searches for differences between the lists used in the queue plugin and the actual player list on the server and reacts appropriately (I hope^^), see the "inconsistencyinterval" parameter in the XML
  • removed the ladder serverlimit setting from the config since from now on the ladder limit is read directly out of the dedicated server via XMLRPC
  • the IdleKicker shouldn't kick relay servers anymore
  • in (X)Aseco, the worstkick was buggy for WarmUp, fixed
  • again some small structural changes
  • probably some other stuff, I forgot to mention ;-)
Update v0.46 (XFA)
  • I used a faulty named event in the IdleKicker for Aseco (therefore it didn't work properly)-> fixed
Update v0.45 (XFA)
  • No functional changes but I added some clickable ManiaLinks that replace the chat commands and messages since I heard from an admin that some players don't read the chat lines, this manialink stuff is optional and can be configured in the xml file (see the "Configuration" section below)
Update v0.40 (XFA)
  • Admin check for KickWorst was faulty, so admins were also kicked, even if "kickadmin" was false -> fixed
  • IdleKicker crashed FAST, sorry about that ;-) ->fixed
  • Added a new functionality: If a player joins the race he gets a "safetime" in which he won't be kicked by the KickWorst function, this should give new players the chance to be able to drive a few rounds (especially when they enter at the end of a race), the xml parameter for that is "newplayers_safetime"
Update v0.35b (XFA)
  • little fix for Aseco, where I forgot to properly check for admins, so they were always kicked, too, no matter what setting
Update v0.35 (XFA)
  • Apparently the ForceSpectator method works too straight forward and even lets players in, that are below the needed rank, this is fixed now:
    In the config file, there's a new parameter called "serverlimitmin" which should be set to your minimum point limit, FAST users won't need to do this, since the plugin gets this value from the Dedicated config file there
Update v0.30 (XFA)
  • Uh, another letter, this time it stands for Aseco, so from now on this plugin will run on XAseco, Aseco and FAST
  • Idlekicker in FAST was faulty -> fixed
  • KickWorst: Noone will be kicked after the WarmUp, only after real races
  • some small structural changes
Update v0.25 (XF)
  • Again some useless letters after the version number, this time they stand for XAseco&FAST since from now on, both of them are supported =)
  • Fixed some inconsistency in the chatlines
Alternative version v0.2ox
  • "ox" stands for "older XAsecos" and it only works for XAsecos prior to 1.03 (this will be the only version working there, I won't make an alternative for future releases, so update your XAseco ;-) )



If you don't follow the steps carefully, the plugin will not be working properly.
  1. Unrar the archive into the ASECO or FAST folder (FAST users can now proceed to step 3)
  2. Insert the following line into "plugins.xml" (after all other plugins)

    Code: Select all

  3. Configure some stuff if you like to (see "Configuration" section below)
  4. Done! Have fun!


Every spectator will be put into forced spectator mode, so constantly hitting "Enter" won't accomplish anything.
If a spot on the server opens, the first one who came will automatically exit spectator mode and enter the driving.
After that the second one who joined... and so on...

If a player choses to put himself into spectator mode to take a break from driving, he'll be put into the "Unqueue" mode.
That means, to rejoin the game he'll have to reenter the queue by typing "/queue".

A player in the queue can exit the queue and be a normal spectator by typing "/unqueue".

The Kicking Functions

I know, XAseco already has an Idlekicker, but I kinda wanted a time based one and since it matches this plugin I implemented it. Therefore inside the config file you can configure your idle kicking preferences (find details in the "Configuration" section below). You can of course deactivate the kicking.

Another thing I implemented is a Kick-Worst function. That means after each race the plugin checks if there are players in the queue and if this is the case, the plugin kicks the x worst players from the last race. This is still experimental since I don't know how it reacts in some Game Modes and especially I did not try WarmUp.


Inside the main XAseco/FAST folder, you'll find a file called "autoqueue_config.xml". Inside this file you can configure everything you want to customize the plugin to your needs:
  • kickinterval: The time interval in which the plugin checks for "kickable" players, if set to "0", the whole idle kicking is disabled
  • idletime: Time, until an idle player is kicked. A player is set active if he does one of the following things:
    • pass a checkpoint
    • write a chat line
    • finish a race
    • click a manialink
  • unqeued_spec_idletime: The same like the beforementioned, but for spectators. This functionality won't kick players that are waiting in the queue
  • kickworst: Maximum number of players kicked after a race is finished (the plugin takes the race ranking and kicks the worst players)
  • kickadmins: Determines whether admins can be automatically kicked or not
  • use_manialinks: set true to use ManiaLink display and buttons instead of chat display and chat commands
  • str_*: Some strings for the chat and ManiaLink output
  • buttonxml: the ManiaLink code used for the queue output and button, you can of course change it if you like to
  • listconfig: some settings for the display of the queue list
    • autoshow: If true the list will be shown automatically to a player that joins the queue
    • title: the string that will be used as the caption for the list
    • style: the Manialink style for the list background
    • substyle: the Manialink substyle for the list background
    • highlitestyle: the ManiaLink style for the background of a listentry
    • highlitesubstyle: the ManiaLink substyle for the background of a listentry
    • posx, posy: the position of the queue list window
    • rows: the number of rows in the list
    • maxcols: the maximum number of columns in the list (the plugin will automatically remove empty columns)
    • maxwidth: the width the list uses if all columns are filled
    • scale: (0..1) scales the whole list by the given factor

Re: [XAseco] AutoQueue v0.2

Posted: 26 Aug 2008 18:13
by f*ckfish
Any questions, confused about something, don't know what that's supposed to be? Just ask =)

Re: [XAseco] AutoQueue v0.2

Posted: 26 Aug 2008 18:21
by BReMFoX
f*ckfish wrote:Another thing I implemented is a Kick-Worst function. That means after each race the plugin checks if there are players in the queue and if this is the case, the plugin kicks the x worst players from the last race. This is still experimental since I don't know how it reacts in some Game Modes and especially I did not try WarmUp.
This i like :3

Re: [XAseco] AutoQueue v0.2

Posted: 26 Aug 2008 18:49
by Qbert
Have not seen it in action, but this looks great. Just what those servers need, thanks for writeing it, and lets hope many will use it!

Re: [XAseco] AutoQueue v0.2

Posted: 27 Aug 2008 08:20
by Ouwe
Looks great, Thank you.
I am going to implement it on my 60K-80K server.

I have seen it working on my server and it works very good :3
I only have the autoqueue working btw

Re: [XAseco] AutoQueue v0.2

Posted: 27 Aug 2008 12:13
by FoxShadow
f*ckfish wrote: Every spectator will be put into forced spectator mode, so constantly hitting "Enter" won't accomplish anything.
My Enter key says thank you ! :roflol:

Nice idea and very nice work. :1

Re: [XAseco] AutoQueue v0.2

Posted: 27 Aug 2008 12:31
by f*ckfish
Thanks =)

For a special request, I released a version for XAsecos prior to 1.03, upcoming releases won't support older XAsecos anymore.

Re: [XAseco] AutoQueue v0.2

Posted: 27 Aug 2008 13:20
by Helstar
n1 ! :3 :gobananas:

Re: [XAseco] AutoQueue v0.2

Posted: 27 Aug 2008 16:05
by Ant
Sounds good, I'm gonna try it out - theres also gonna be a download on my site too :thumbsup:

Re: [XAseco/FAST] AutoQueue v0.25

Posted: 27 Aug 2008 17:55
by f*ckfish
Fixed a few little bugs and made it FAST compatible =) (Aseco support will probably follow, too)

Re: [(X)Aseco/FAST] AutoQueue v0.30

Posted: 28 Aug 2008 10:31
by f*ckfish
Another few bugfixes and ASECO support in v0.30.

Re: [(X)Aseco/FAST] AutoQueue v0.35

Posted: 28 Aug 2008 13:07
by f*ckfish
Aaaand the next version is out there, there was a really nasty bug letting people below the serverlimits play. This is fixed now (be sure to edit the config file to your server limit).

Re: [(X)Aseco/FAST] AutoQueue v0.35b

Posted: 28 Aug 2008 17:59
by muhaX
great program, but their is still a problem.

When the players start at the last round of a track (because the top player has already 36 of the 37 points), it could happen that the last player already leaves, because he knows he's lost.

So the first quequed player takes his place. But at the end of the track that player will get kicked, because he has 0 or a few points.

So thats not really far.

In your script you should make something like "check player official" before kicking him.

Re: [(X)Aseco/FAST] AutoQueue v0.35b

Posted: 28 Aug 2008 18:05
by Helstar
I prefer to kick by myself, it's funnier :mrgreen:

Also when if player isn't in official mode, I don't kick him at the end of round either, no matter what position he is.

Re: [(X)Aseco/FAST] AutoQueue v0.35b

Posted: 28 Aug 2008 19:25
by f*ckfish
These are good thoughts. But isn't a player becoming official also if he's in spectator mode? So if he waits for 2 tracks won't he be instantly official, when he enters the game? At least, that's what I thought.
Maybe I could build in something like a minimum number of attempts to make him kickable ;-)