This plugin displays multiple graphical widgets on your server.
There are the Local Records widget, a Live Rankings widget, a Dedimania widget, a Karma widget, a Challenge widget, a Clock widget, a NextTrack widget and an Advertisement widget (most of them inspired by SATO).
The Scoreboard Lists widget is not really anything new, it was done before by Basti504 for Aseco/RASP and kevlarsoft for XASECO, but I wanted to build in stuff like that since I thought of the widgets. So thanks to those two =)

Thanks a lot to Phil and Trabtown who gave the ideas and were the first to use those new styles.
Visit them at SpeeedAddicts.com

Added the Scoreboard Lists widget which enables you to display various lists containing player and record statistics in the scoreboard state, see "./plugins/fufi/fufi_widgets_(x)aseco.xml" for usage examples (the corresponding XML tag is scoreboardlists)

Finally fixed the FufiMenu handling, so no editing is required anymore

changed the image and web URLs since fish.oorf.de is history, the images are now on Imageshack, if that doesn't work out, I'll think of another place but I can't really host them on my new server since my provider went haywire before because of the massive number of requests^^

Probably fixed and changed some other stuff, too that I forgot to mention

Update v0.71a

Hopefully fixed that LiveRankingError hangups, if the resetError-method does what it's supposed to do

Update v0.7c

Added some debugging for the LiveRankings freeze bug, so if you have this issue, please download this version so I can find the cause for the error

Added ASECO dedimania support (the dedimania widget has to be enabled manually inside "./plugins/fufi/fufi_widgets_aseco.xml", I only tested it with the WIP DediMania plugin by calsmurf2904/w1lla/oliverde8 but there's no reason it should not work when they officially release it

Update v0.7b

fixed a bug that caused the karma widget to not update properly

Update v0.7

Okay, so here it is, I built some kind of fix (hopefully) for the XML-RPC transport error, it is called "High Performance Mode" (hpm) and can be understood as a switch that toggles, when the playercount reaches a specified level, some facts about this mode:

It can be configured inside "fufi_widgets_config.xml"

in hpm you can override your default settings and use multiple ways to reduce the number of manialink calls: you can either disable some of the record widgets or put them into "static mode" or both

"static mode" is a state where the widgets are not customized to each player anymore, every player gets exactly the same widget (resulting in plain "Top 10" lists), which also results in only one manialink call per update and not 50 (if there are 50 players on the server), one of the downsides is, that the hiding of the widgets won't work anymore

you can define the lowerlimit and the upperlimit (for a more detailed explanation about that, have a look into the comments in the xml file), I implemented a range so that the modes are not always "flickering" if players constantly leave and join

The hpm will enable itself when the playercount is too high and disable itself when the playercount falls below the limit

Most importantly: I could not really test it deeply, since my server is not that well populated, so I hope to get a lot of feedback from you!

fixed a nasty bug (combined with some evil and ugly copy-and-paste-mistakes), Xymph and soehest found, it caused some nicknames to not show properly in the widgets and (X)Aseco

added the possibility to display the counts of positive and negative votes inside the karma widget (this is configurable for every game mode, like always , have a look at the xml-tag "displayvotecounts"

added a "NextTrack Widget" which can be displayed when the scoreboard shows (per default enabled in XASECO and disabled in Aseco)

added the possibility to show the karma widget in "scoreboard mode", to configure that one, have a look at the "./plugins/fufi/fufi_widgets_(x)aseco.xml", I added a state with the number 6, which corresponds to the "scoreboard mode"

with this scoreboard-karma stuff, I also added two little ads via AdWidget to display something like "Please vote...", both, the scoreboard-karma stuff and the ads are per default enabled in XASECO and disabled in Aseco

added a chatcommand "/togglewidgets" which does the same as the "F7"-key, shouldn't be to important for you, but I'll need it for another plugin

I probably forgot a lot of other things, I built in, sorry for that, maybe I can remember later

Update v0.62b

Remember when I said "don't overload the HUD"? Forget that and just display everything
What I want to say with this is, that the "new" version contains a default config that displays the Dedimania widget in all possible GameModes in a place where I think it's good
When I did this I also completely changed the whole positioning configuration for nearly all record widgets to use the given space better. I highly recommend upgrading!

Attention!
To achieve the above mentioned I had to externalize the widget display config and more than that I split it up into 2 different files. They can be found in "./plugins/fufi" and are named "fufi_widgets_aseco.xml" and "fufi_widgets_xaseco.xml".
As you can see, there is a separate configuration for both Aseco versions, so if you want to customize, choose wisely
The widgets will automatically use the right config file for your system.

I added a green icon on the right side of the race widgets to indicate your position, so it is now possible to move the widgets further to the left

Added another useless feature: inside the config XML you can now specify "use_aseco_style" to override your style settings and use the styles for your widgets that (X)Aseco uses for it's windows.
This feature is in "experimental" mode and will probably never leave it^^

Oh, new screenshot in this post... woohooo!

Update v0.62

Added a Dedimania widget (currently it's limited to XASECO), it can be customized just like the other record widgets (you'll have to activate "plugin.dedimania.php" of course)Attention: Since I think the HUD should not be too overloaded, this widget is deactivated by default, just activate it, if you need it, I also gave it the same position values like the live rankings widget, so if you use both, you should do some positioning work inside the config XML

Some nicknames ran out of the screen with the widgets being on the right side - FIXED

I hardcoded the F7 key for toggling the display of the record widgets to remove interferences with (X)Aseco

Fixed a bug which could freeze (X)Aseco - Thanks to Xymph

You can now disable the titlebar for every record widget and every gamemode inside the config XML with the help of the tag "displaytitle"

Update v0.61:

Maintenance and Bugfix Release

If you use XASECO, you'll have to use at least v0.99b, otherwise it won't work

heavily reduced the number of Manialink calls which should help to minimize the risk of server crashes

Added a complete debug mode which tracks the manialink calls (enable Aseco's debug mode to if you experience problems)

Added some conversions to nick- and tracknames to ensure the widgets will be shown

F7 bugged in Rounds mode - fixed

The widgets and XASECO interfered in some ways causing the original challenge info to pop up in some configurations - fixed

Update v0.60:

Biggest Update: The plugin now works for both XASECO and ASECO (Forever only)

New Widget: the ad widget, which enables you to display custom advertisements in the hud (see the "Ad Widget" section below

There's a key binding to toggle the display of th record widgets ingame, so now everyone can choose for himself whether to show or to hide them (default key is "F7" but can be changed in the config XML)

I reworked the Challenge widget to display information for the next track (if it was clicked and then is in the expanded state) (there's a functionality missing in the current ASECO 2.1.4, but the plugin won't crash but remind you to upgrade to the next ASECO, when it's out)

Most of the used styles and substyles for the manialinks are now configurable via "fufi_widgets_config.xml"

Most of the used colors and strings are now configurable in the config XML

The Local Records widget and the Live Rankings widget now got an additional parameter in the config called "topcount" which determines how many entries at the top of the widget are reserved for the best players, example: if "topcount" is set to three, you'll get a widget that shows the top 3 on top and fills the rest of the widget with the "old" Close2You™(All Rights Reserved by SATO™) style

Update v0.53b:

Fixed a bug that disabled all the widgets when the clockwidget was disabled

Update v0.53:

Changed some stuff according to the new Aseco release

now uses the "OnKarmaChange" event and therefore there are no duplicate chat commands and sql queries anymore

no fiddeling around in the Aseco.php necessary (for Aseco versions 2.1.0 and newer)

added an additional field in the fufi_widgets_config.xml (updateinterval) which forces the widgets to wait a given amount of seconds to cache events, this can save a lot of redundant manialink calls, if the server is highly populated

some code enhancements (at least I think they are^^)

Update v0.52:

Fixed the Karma widget, for real this time

Update v0.51:

Hopefully fixed an issue about a MySQL warning that came up because of the Karma widget

Installation

Important!

If you don't follow the steps carefully, the plugin will not be working properly.

Unrar the archive into the ASECO folder

Insert the following line into "plugins.xml" (after all other plugins)

You can adjust the configuration in the pretty self explaining "fufi_widgets_config.xml".

Some more specific settings on when to show which widget on which place with which size you can find in the files "./plugins/fufi/fufi_widgets_aseco.xml" and "./plugins/fufi/fufi_widgets_aseco.xml" (be sure to edit the one which matches your system).

You can also take a shot in pimping the graphical output by editing the XML files in the "./plugins/fufi" folder.

The Challenge Widget

This one replaces the original challenge info in the upper right of the screen with something more fancy =) It adds the display of a logo, the author time and if you click it it will also show gold, silver and bronze time and a TMX link (if you use XASECO, it always works, or alternatively in ASECO with oliverde8's TMX-Info plugin installed(Get it here!))

The Local Records Widget

This one just displays the local records on your server in a defined area customized for every player individually.

The Dedimania Widget

This widget displays the current dedimania records for this challenge (requires a running "plugin.dedimania.php" with valid configuration).

The Live Rankings Widget

This widget displays the current scoreboard in the same style like the local records widget.

The Karma Widget

This one displays the track karma graphically and provides buttons to karma vote via mouse click.

The Clock Widget

It's just a clock

The Ad Widget

The new Ad widget enables you to display multiple advertisements in your HUD. You can configure them inside "fufi_widgets_config.xml" where you will also find useful commented sample adverts.

Basically you can display text, bik-videos, images, react on mouseover and use them to link to the external browser or the ingame manialink browser.

You can specify adverts that show up the whole time or limit them to be displayed only when racing or when the scoreboard shows up.

The NextTrack Widget

Enables you to display some information about the next track, when the scoreboard is showing.

The Scoreboard Lists Widget

Enables you to display some statistics about records and players, when the scoreboard is showing.

Some Screenshots (probably outdated)

Ma ride 'n ma widgets!

Last edited by f*ckfish on 12 Dec 2008 16:10, edited 21 times in total.

I have a strange difference between my TMF play server (tmtp://#join=xymph_admin_tmf) in TA mode and my private TMF test server in Rounds: on the former the records/rankings widgets are on the right edge (like in the screenshot), on the latter those widgets are on the left side and the karma widget is below the TA countdown timer instead of above it. I haven't looked much into this yet (tracking an XAseco issue at the moment), but do you have any idea what could be causing that? Is it the game mode?

I unrarred the v0.60 widgets into both XAseco trees the same way, no XML changes, plugin.fufi.widgets.php is last in plugins.xml.

Xymph wrote:I have a strange difference between my TMF play server (tmtp://#join=xymph_admin_tmf) and my private TMF test server: on the former the records/rankings widgets are on the right edge (like in the screenshot), on the latter those widgets are on the left side and the karma widget is below the TA countdown timer instead of above it. I haven't looked much into this yet (tracking an XAseco issue at the moment), but do you have any idea what could be causing that?

I unrarred the v0.60 widgets into both XAseco trees the same way, no XML changes, plugin.fufi.widgets.php is last in plugins.xml.

The widgets react on the game mode so maybe one is in time attack and the other one is in rounds?

But that's a bit strange, makes for an inconsistent user interface. I see in Team mode the records widget is also on the left, in Laps mode the records one is on the right again (with no rankings widget, which makes sense as there's no intermediate ranking anyway), in Stunts both are on the left, and in Cup mode the records widget is also on the left, but the rankings one is missing just like in Team. Are you going to sync that up in a future release?

Xymph wrote:Yeah, I realized and edited that into my post a few minutes later.

But that's a bit strange, makes for an inconsistent user interface. I see in Team mode the records widget is also on the left, in Laps mode the records one is on the right again (with no rankings widget, which makes sense as there's no intermediate ranking anyway), in Stunts both are on the left, and in Cup mode the records widget is also on the left, but the rankings one is missing just like in Team. Are you going to sync that up in a future release?

The inconsistency comes from the different behaviour of Trackmania in the different game modes. I personally like the menus better on the right side, but that's also the place where in rounds mode the original trackmania panels are displayed, so I moved the widgets to the left for these modes. When placing the widgets, I always tried not to interfere with the original Trackmania displays. In every game mode where the local rankings are missing I wasn't successfully able to display information there that made sense. GetCurrentRanking returned the wrong results in Cup Mode when I tried that and I wanted to have a closer look into that one later. Team Mode and Laps Mode also need special handling which I didn't want to focus on, yet.
Btw. the positions, display and sizing of each widget can be accessed and customized in the config.xml. I preconfigured what was the most ergonomic in my opinion.

f*ckfish wrote:The inconsistency comes from the different behaviour of Trackmania in the different game modes. I personally like the menus better on the right side, but that's also the place where in rounds mode the original trackmania panels are displayed, so I moved the widgets to the left for these modes. When placing the widgets, I always tried not to interfere with the original Trackmania displays. In every game mode where the local rankings are missing I wasn't successfully able to display information there that made sense. GetCurrentRanking returned the wrong results in Cup Mode when I tried that and I wanted to have a closer look into that one later. Team Mode and Laps Mode also need special handling which I didn't want to focus on, yet.
Btw. the positions, display and sizing of each widget can be accessed and customized in the config.xml. I preconfigured what was the most ergonomic in my opinion.

Oh of course, forgot about the rounds panel. Yeah, now it all makes sense, thanks for the explanation. And indeed, I also like them better on the right.

The medal order in the expanded widget should be gold, silver, bronze from top to bottom, just like the opponents are listed in Solo mode. The times read more logically this way.

And move the TMX button down, as going near it with the mouse brings down the system menu too easily, overlaying the widget. I experimented a little and found that a vertical position of 3.3 for the container quad (and thus 3.1 for the image quad) aligns the bottom of the button with the bottom of the next and current containers on either side.

[05/21,18:16:41] [Local DB] player klabauter finished with 40440 and took the 34. LR place!
End Round
End Race
|...Calculating ranks
|...Done!
[05/21,18:16:56] bo-animal won for the 5. time!
[05/21,18:16:59] >> player 229 left the game [champ1234567890 : champ1234567890]
[05/21,18:17:02] >> player 1 left the game [paddedabest : P4Dd3]
[05/21,18:17:11] >> player 244 left the game [magno_in_japan : magno_in_japan]
Begin Race
XML error: Invalid character at line 26

[05/21,18:16:41] [Local DB] player klabauter finished with 40440 and took the 34. LR place!
End Round
End Race
|...Calculating ranks
|...Done!
[05/21,18:16:56] bo-animal won for the 5. time!
[05/21,18:16:59] >> player 229 left the game [champ1234567890 : champ1234567890]
[05/21,18:17:02] >> player 1 left the game [paddedabest : P4Dd3]
[05/21,18:17:11] >> player 244 left the game [magno_in_japan : magno_in_japan]
Begin Race
XML error: Invalid character at line 26

From the position of this error I would assume that there's an invalid character in a track name causing that. What I don't really get is that the error looks like an XML parser error but in the widgets I don't do any XML parsing at all after the initialization.

Does anyone know what module could be producing this kind of error? (Maybe the GbxRemote?!)

[05/21,18:16:41] [Local DB] player klabauter finished with 40440 and took the 34. LR place!
End Round
End Race
|...Calculating ranks
|...Done!
[05/21,18:16:56] bo-animal won for the 5. time!
[05/21,18:16:59] >> player 229 left the game [champ1234567890 : champ1234567890]
[05/21,18:17:02] >> player 1 left the game [paddedabest : P4Dd3]
[05/21,18:17:11] >> player 244 left the game [magno_in_japan : magno_in_japan]
Begin Race
XML error: Invalid character at line 26

From the position of this error I would assume that there's an invalid character in a track name causing that. What I don't really get is that the error looks like an XML parser error but in the widgets I don't do any XML parsing at all after the initialization.

Does anyone know what module could be producing this kind of error? (Maybe the GbxRemote?!)

Make sure you wrap ALL of your track and player names in htmlspecialchars function, otherwise anything with a < or > in it will cause some strange problems (possibly like this).

[05/21,18:16:41] [Local DB] player klabauter finished with 40440 and took the 34. LR place!
End Round
End Race
|...Calculating ranks
|...Done!
[05/21,18:16:56] bo-animal won for the 5. time!
[05/21,18:16:59] >> player 229 left the game [champ1234567890 : champ1234567890]
[05/21,18:17:02] >> player 1 left the game [paddedabest : P4Dd3]
[05/21,18:17:11] >> player 244 left the game [magno_in_japan : magno_in_japan]
Begin Race
XML error: Invalid character at line 26

From the position of this error I would assume that there's an invalid character in a track name causing that. What I don't really get is that the error looks like an XML parser error but in the widgets I don't do any XML parsing at all after the initialization.

Does anyone know what module could be producing this kind of error? (Maybe the GbxRemote?!)

This might be from the GBXDataFetcher module if marshall1205 is using XAseco v0.99, as upon loading a new track (hence the Begin Race message) there's a GBXDataFetcher call which also parses the XML block within a track. If that track's XML is somehow malformed, the above XML error would result. I'd have to get a copy of the actual track to be sure though.

marshall1205, can you determine which track the system attempts to load? Look in /list for which track follows the one that last loads successfully.