MAJOR XGUI UPDATE! Because the first post was getting outdated, here's a brand new 'first post'! If you're familiar with all of this information, skip to the very bottom for the best part-- the changelog!
XGUI -- A GUI for ULXXGUI is a GUI for ULX which is easy to use, very intuitive, always provides 100% updated information, is modular for additional content, and will include EVERY feature ULX has to offer. This will become the official GUI for ULX, and will eventually replace the current menus.
The ModulesAs this is a work in progress, everything isn't completely finished. Here are the individual modules and the information about them (as well as a general idea of what needs to be finished):
Players Module:This module is designed to provide admins/nonadmins with access to commands they can use. Also features an accessible textbox to allow players to quickly send private messages to each other.
TODO: Add better organization/manipulation of commands; Add a way to perform "quick commands" by double-clicking a command.
Groups Module:This module is designed to allow admins to easily add/remove groups, set/remove users to various groups, and set user/group command restrictions and access tags.
TODO: This module needs a major re-organization. Layout is a bit confusing at first glance.
Maps Module:This module is designed for admins to view server maps, and perform a yes/no vote to change to a specific map, or to perform a multiple-map vote. Also users can access this to see which maps on the server are voteable, and to start a votemap to any available maps.
TODO: Add spot for admins to edit the votemaps list.
Settings Module:PICTURE NOTE: That "add" button on the gimps window changes from add to remove based on what you selected last. It was supposed to say "Remove" when I took the screenshot.This module is designed for users to modify XGUI settings or any client-side settings. Admins will be able to change gamemode-specific settings and limits, change any XGUI-specific settings, and set ULX specific settings, including adding/removing gimps and adverts on the fly. All settings changed should be instantaneous, and others should see the changes you make in realtime.
Please note that any changes made in this module don't save yet! I'll be implementing this soon.TODO: Saving!! Redo settings layout-- Needs to be modular for gamemode settings, as well as settings for any third-party plugins (UTeam, for example). Also need to work on adding more XGUI settings, like quick-command options specified earlier.
Bans Module:This module is designed to allow admins to quickly view bans on their server, as well as provide very specific details about bans when requested. It also allows to ban players in the server, or ban offline players by their STEAMID. You can also change the name/reason of a ban when needed. You can also view bans that were imported from the Source Engine (banned via banid), and move them over to ULX if needed.
TODO: Nothing! (Except any future features/bugfixes that may come about)
Logs Module:This module will allow an easily viewable log showing chat, PMs, ULX commands, server output, and other various important console information. This log will be filterable, so you will be able to quickly show only the information you want to look up.
TODO: This entire module!
Progress Bar:XGUI has a progress bar to view when and how much data is coming from the server! (Usually only shows up for a split second, but, useful for large ban files and possible log features later)
Download, Instructions, and UsageXGUI will eventually be included with ULX by default-- but for now, it comes as a separate addon.
To download, please visit
My Github Page and click the "download source" button, download as ZIP.
NOTE: As of 05/02/2010, due to file location changes, when updating XGUI you should completely remove the existing XGUI folder before replacing it with the new one.(Or you can just delete the xgui/lua/ulx/modules/cl/gui_modules/ folder)Once installed, you can activate XGUI by the following methods:
To toggle xgui (recommended):
-Bind a key to "xgui" OR
-Bind a key to "xgui toggle"
To show xugi:
-Say "!xgui" in chat OR
-Bind a key to "xgui show"
To hide xgui:
-Click the 'x' button at the top-right of the screen OR
-Bind a key to "xgui hide" OR
-Bind a key to "xgui close"
To open a specific tab in xgui:
-Say "!xgui bans" in chat OR
-Bind a key to "xgui show bans"
(where bans can be any tab name such as players, groups, settings, bans, test module, etc.)
Enjoy! Let me know of any bugs you come across, or any suggestions you might have!
CHANGELOG:
05/03/2010
-----------------
+Added: New (but very incomplete) settings module. (I added this back in to fix a bug when starting XGUI.)
05/02/2010
-----------------
*Changed: Organized code-- Tableilzed most of the functions and controls
*Changed: Moved module lua files to lua/ulx/xgui/, other xgui files in same location.
*Changed: XGUI is now much smoother-- It has better fade in/out effects!
=Fixed: Some data being sent twice when one's permissions were changed.
=Fixed: "attempt to index global 'xgui_chunkbox' (a nil value)" error has *hopefully* been permanently fixed.
=Fixed: Misc. bugfixes, mostly caused by new changes.
04/21/2010
-----------------
+Added: xgui showtab "tabname" - Allow a console command to bring up a specific module in XGUI
+Added: !xgui "tabname" - Open a specific module in xgui via chat command
+Added: "hook" system for modules to run functions when certain 'events' happen. (Not using gamemode hooks whatsoever, used for refreshing data)
=Fixed: Modules no longer appear "popped off" the screen for a fraction of a second on occasion.
=Fixed: Bug where users wouldn't have access to the chat command
=Fixed: Groups tab now updates properly when changes are made
*Changed: XGUI no longer refreshes every module when it is opened (Modules can now "hook" into "onOpen")
*Changed: Cleaned up XGUI initialization code (derma and functions, mostly in xgui_client.lua)
*Changed: Offline mode is now detected better
*Changed: New method of sending data to clients.
-Now shows a progress bar!
-You can use XGUI while data is being sent/updated
-Supports sending lots of data (VERY large banlists)
-Modules can "hook" their own functions when certain data is updated
*Bans menu update!
+Added: You can filter out permabans from the main ULX banlist
+Added: Allow setting (DMultiChoice) of hours/minutes/days on bantime slider
+Added: You can now update a reason of a ban, as well as the name.
+Added: Window to view any bans retrieved from the source engine-- banned_users.cfg
-Sourcebans can be removed
-You can "convert" these to ULX bans and add name/reason/time details.
+Added: Freezeban option! When you select a player to ban via the add ban button, it can automatically freeze the player to prevent them from damaging your server while you specify a time/reason!
*Changed: Bans now automatically remove themselves when their time expires.
-And many bugfixes/minor changes!
03/20/2010
-----------------
+Added: Bans Module!
-Easily add and remove bans.
-When adding a ban by SteamID, you can set the players name.
-Edit an existing banned players name.
-View tons of ban details, such as the date and length banned, time unbanned, time remaining, etc.
-Double-Click a ban to view ban details, right-click to show more options!
+Added: Permissions Phase 1: XGUI automatically adds/removes tabs you now have or no longer have access to, and gets/removes any server data you have or don't have access to. The changes are applied IMMEDIATELY.
+Added: Gimps and Adverts now refresh immediately when ANY player makes adds or removes them.
+Added: Close button on each tab (adds automatically) that closes xgui
+Added: A chat command! You can now open xgui by saying "!xgui" in chat!
+Added: "Offline" mode-- XGUI will now run even when the server doesn't have it installed!
*Changed: Updated XGUI-specific access tags:
-xgui_gmsettings - Gives access to gamemode-specific CVARS and settings,
-xgui_svsettings - Gives access to server-specific CVARS and settings
-xgui_ulxsettings - Gives access to view / change ULX settings (Note that ULX has it's own accesses per cvar)
-xgui_managegroups - Gives access to view the groups tab (But doesn't necessarily give permissions to modify groups/users)
-xgui_managebans - Gives access to the Bans tab (But not to add/remove bans)
*Changed: Changing ulx welcomemessage no longer requires access to ulx rcon.
*Changed: Replaced RCON box with private message box
*Changed: Restyled Gimps window-- Now uses only one window, has one button for adding/removing gimps (based on whether or not a gimp or the textbox was last selected)
*Changed: Restyled adverts window-- MUCH more informative and user-friendly, can't set advert groups name by design (if you REALLY want to do this just edit adverts.txt)
=Fixed: Added Permissions to individual tabs-- Now they don't show up if you aren't supposed to see them!
=Fixed: Bugs where XGUI wouldn't open due to lack of data from server (caused by not having permission to receive data)
=Fixed: [b]Most[/b] cases where any problems or bugs with XGUI would cause a window to be left open resulting in a stuck window/mouse cursor have now been fixed
=Fixed: Gimps and adverts now add/remove correctly with the latest SVN.
-Removed: Hovering map preview on the maps tab.
And many, many, bugfixes!