Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - MrPresident

Pages: 1 [2] 3 4 ... 6
Community Servers / Where did my post go?
« on: April 07, 2015, 02:38:32 AM »
Occasionally I am going to be checking in on all of the threads here to make sure that the servers they are advertising aren't dead or offline.
When I first started doing this, there were 9 pages of advertisement posts. After cleaning up this forum, I've reduced that down to just a little over 1 page of posts that contain legitimate communities that are still around with servers that are still online.

If I find that your advertised server is offline, your thread will be moved into the Archive forum. The reason I am doing this is to make this forum easier for players looking for a community/server to play on easier to browse. This will also help those players with legitimate servers, by increasing the chance that someone will find their thread.

If you believe that I have moved your thread in error, please PM me with a link to your thread in the Archive forum and I will check the server again and move the thread back into the main forum if I find that the server is responsive again. If you just need to change the IP in your post, that's fine too, just change it before PMing me.

Thanks! I hope this makes the Community Servers forum easier and more enjoyable to use for everyone involved!

Ulysses Release Archives / ULib MySQL Authentication
« on: April 03, 2015, 08:25:05 PM »
What This Is
This is a replacement for ULib's UCL storage system. The current system saves and reads all stored users and their accesses from a single text file. This works fine, unless you have multiple servers or a LOT of information in that file.

What This Does
This overrides the Save and Load functions in UCL. Instead of loading and saving your users to the users.txt file, it will instead load and save them from a database.

What This Doesn't Do
This only handles users. It doesn't store groups or group permissions. Those are still going to be stored in the groups.txt
This doesn't handle banning. There are plenty of MySQL banning modules out there.

What Is Modified
You will need to *replace* your ucl.lua file in addons\ULib\lua\ulib\server\ucl.lua
We typically NEVER recommend that you replace any of our stock files as this could cause issues or the changes will be reverted the next time you update ULib.. However, due to the nature of this kind of modification simply writing it into an addon wouldn't work because of the way modules are loaded. If you choose to install this, I HIGHLY recommend making a backup of your ULib addon first.
Inside the ucl.lua file I added some MySQL functions. I also modified the SaveFile function as well as completely commented out the LoadFromFile function. I also slightly modified addUser and removeUser functions.

How To Install
1. Install the MySQLoo module. If you don't know where/how to get this I suggest Google.
2. Download the copy of ucl.lua from this post (YOU NEED TO BE LOGGED IN TO SEE IT)
3. Replace Addons\ULib\lua\server\ucl.lua with the one I provided.
4. Create a database in your MySQL called 'ulibsql' and set up a user to have permissions for it. (Don't create any tables inside of it, my code will handle that)
5. Edit the information at the top of the file to suit your MySQL database.
6. To be sure the table generated: run 'lua_run ULib_SQL_CreateTable()' from your server console.
7. From your server console or in game (if you are a superadmin) run ulib_loadlegacy to load your users from your users.txt and load them into your database.

This is ONLY for people who know how to use the MySQLOO module. I will not provide support for getting that installed or configured.
This is not for server owners who do not know enough about lua or modifying files to at least edit the SQL configuration at the top of the file.
If you update ULib this modification will be lost and you'll have to reinstall it.
This comes as-is and while I did to testing, there is no way for me to know if it'll work in every situation. Please make a backup of your ULib files before installing this.

I am not going to help you install MySQLOO.
If you have MySQLOO installed and configured properly and are having trouble with this modification, please feel free to post here and I will try and assist you the best I can.

Please let me know how this works for you. :)

Community Server Archive / About this Sub-Forum
« on: August 24, 2014, 11:02:03 PM »
Any servers that we notice are no longer around we will place into this forum.
This saves the confusion of new members trying to join a server they think looks great only to find out that it no longer exists.

If your server was placed in this forum and you bring it back online or simply had a new IP, let us know and we'll move it back to the main forum.


Releases / ERS - EMail Reporting System
« on: July 05, 2014, 07:07:33 PM »
E-Mail Reporting System

This simple script allows your users to send reports right from the server to your e-mail.

browse to the ERS/lua/autorun/server/configuration.lua and change the following to your specifications.

group_restrictions - This is a table of groups that are allowed to use the script. (I didn't make it ULX compliant in this regard to make it universally compatible with other servers not running ULX)
report_emails - This is a table of e-mail addresses the reports will be sent to.
report_cooldown - This is the amount of time in minutes a player has to wait between sending reports.
php_location - This is the location you have uploaded the php mail handler file (included). This will be an URL path.

1. Extract the ERS folder into your addons folder.
2. Upload the included report.php file to your web server. Don't forget to change the path to your report.php file in the config lua file.
3. Don't forget to edit the configuration.lua file. (see above)
4. Restart your server and enjoy!


report - opens the reporting window

!report - opens the reporting window


+ The server sends the http post command to the web script.
+ The server injects a predefined pass-phrase into the post command that the webserver will hash out using crc32.
+ Assuming the CRCs match, the server will send the mail, otherwise it will error out.
+ This will keep outside sources from using this script to send mail but will not affect the use of the ERS script to send mail.


+ Removed the Hashing requirement which will hopefully fix the issue between different versions of PHP. It didn't really add any security to the script and was just something that CH wanted me to add before they'd let me post the script there.

+ Moved even more stuff serverside. The client no longer is privy to any information about what's going on behind the scenes.

+ Moved the http.Post to serverside and included a crc32 hash challenge in order to send mail from the server.

+ Release

If you do not have access to your own webserver and would like to run this script, I am willing to run the php portion of the script for people for a small fee. If you are interested in this, contact me on steam or PM here and we can work something out.

Developers Corner / Report to E-Mail
« on: June 29, 2014, 12:22:58 AM »
Here is a little thing I worked on tonight. It's been an idea I've had for a while but some recent changes to gmod's http functions as well as a little free time made it come together.

Let me know if this is something that interests you guys and I can package it for use on other servers.


The idea is that you can type !report (report in console) and it'll open a small GUI for sending automated reports to a predefined e-mail. (myself I have a distro that sends it to all my admins).

In a gamemode I'm writing, I'm trying to give players the ability to sneak. I have it working all except for the hiding footstep sounds.

Code: [Select]
function footsteps( ply )
if ply.sneaking then
print( "SNEAKING" )
return true
hook.Add("PlayerFootstep", "footsteps", footsteps )

All of the debug messages are printing so I know the logic and the hook are being called, but I still hear the footsteps.
Any ideas?

Here is a little wrapper I wrote that checks either a player or a SteamID to see if they exist inside of Steam Community Group.

This does very little on its own, but you could very easily modify this to do all kinds of things, including basic ULX group authentication for setting players to member... or whatever you want.

Code: Lua
  1. function CommunityCheckStatus( communityID, ply )
  2.         if not IsValid(ply) then return end
  3.         local id = util.SteamIDTo64( ply:SteamID() )
  4.         http.Fetch( "" .. communityID .. "/memberslistxml/?xml=1?lolwat="..os.time(),
  5.                 function( body, _, _, _ )
  6.                         if string.find( body, id ) then
  7.                                 SetPlayerMember( ply )
  8.                         else
  9.                                 print( "FALSE" )
  10.                         end
  11.                 end,
  12.                 function( error )
  13.                         print( "Something went terribly wrong!" )
  14.                         print( error )
  15.                 end
  16.         )
  17. end
  19. function CommunityCheckStatusID( communityID, sid )
  20.         local id = util.SteamIDTo64( sid )
  21.         http.Fetch( "" .. communityID .. "/memberslistxml/?xml=1?lolwat="..os.time(),
  22.                 function( body, _, _, _ )
  23.                         if string.find( body, id ) then
  24.                                 SetPlayerMemberID( id )
  25.                         else
  26.                                 print( "FALSE" )
  27.                         end
  28.                 end,
  29.                 function( error )
  30.                         print( "Something went terribly wrong!" )
  31.                         print( error )
  32.                 end
  33.         )
  34. end
  36. function SetPlayerMember( ply )
  37.         if not IsValid(ply) then return end
  38.         print( "THIS PLAYER IS A MEMBER!")
  39. end
  41. function SetPlayerMemberID( id )
  42.         print( "THIS PLAYER IS A MEMBER!")
  43. end

Releases / AWarn2 - Advanced Warning Module
« on: March 06, 2014, 02:31:36 AM »
AWarn2 - New and Improved!

This addon allows admins to warn users and will display to them the reason they were warned.
The addon will keep track of all historic warnings for review by admins.
The addon now has a nice GUI that lets you do everything including viewing a player's warnings.

If enabled, once a user reaches a pre-configurable number of warnings, they are kicked from the server.

By default only admins/superadmins have access to this addon. If you are running ULX/ULib and you want to add more groups or users just assign them the following access flags.
awarn_view - This allows a player to view all players' warnings.
awarn_warn - This allows a player to warn players.
awarn_remove - This allows a player to reduce a player's active warnings.
awarn_delete - This allows a player to completely remove all warnings from a player.
awarn_options - This allows a player to view/edit the scripts configurations.

The access flags are registered in XGUI so adding them is as easy as using your in-game XGUI menu. You can also do it manually with the following ULX commands:

ulx userallow <player> "access_flag"
ulx groupallow <group> "access_flag"


ulx userallow "Mr.President" "awarn_warn"
ulx groupallow "moderator" "awarn_options"

awarn_warn <player/steamid> <reason> - Warn a player for a specified reason
!warn <player> <reason> - Warn a player for a specified reason

awarn_menu - Opens the AWarn GUI screen.
!warn (With no arguements) - Opens the AWarn GUI screen.

Hook Callbacks
AWarnPlayerWarned( Player target_ply, Player ply, String reason )
   target_ply - Player being warned
   ply - Warning Admin
   reason - Reason for warning
AWarnPlayerIDWarned( String tarid, Player ply, String reason )
   tarid - 64bit SteamID of player being warned.
   ply - Warning Admin
   reason - Reason for warning
AWarnLimitKick( Player target_ply )
   target_ply -Player being kicked for passing the warning kick threshold.
AWarnLimitBan( Player target_ply )
   target_ply - Player being banned for passing the warning ban threshold.

Click the image thumbs to view larger versions.

Configurations (Note: these are server console variables. Run these from the server console)

All configurations are done in the built-in configurations menu.

Installation Instructions:
-Extract the awarn folder into your addons folder.
-Restart your server

- extract the single lua files into: garrysmod/addons/awarn2/lua/awarn/modules/

Module: Auto warn players for killing while noclipped.
Module: Auto warn players for killing while in god mode. (Note: This only works with ULX)
Module: Auto warn players for team killing in TTT.
Module: More advanced TTT Module by Krogas. - Description in the post linked.

+ Rewrote the settings system. Back when I wrote AWarn2 clientside replicated convars weren't working so I wrote my own system but it was buggy for some people. I rewrote it to use convars. This doesn't affect how you use the script, but should make it MUCH less buggy for people who would lose or have their settings revert randomly!

+ Fixed some permission issues with the ULX compatibility.
+ Changed how net messages are initialized to hopefully address some loading issues people have been having.

+ Changed the Decay Rate slider to accept values up to 43,200 minutes (1 Month) The max value used to be 100. This should allow server owners to set warning decay rates greater than 100 minutes using the options menu.

+ Fixed a potential display bug with kick/warning thresholds.

+ Not relevant to ULX users. :)

+ awarn_deletewarnings and  awarn_deletewarningsid can now be called from a dedicated server console (from server with lua too). This enables third party addons to access these functions for whatever reason.

+ Added some hook callbacks for integration into other scripts.

+ updated how the chat warn function works. Hopefully fixing some issues people are reporting.

+ Fixed an issue where reducing a player's active warnings wasn't working.

+ This is just a behind the scenes update. I moved a bunch of clientside console commands that were being used to send data to the server to Net Messages. This should fix some issues Listen Server admins were seeing when using AWarn2.

+ Long asked for feature. Admins with the delete permission can now right click on individual warnings and remove them from players.

+ Now fully modular.
+ Fixed some issues with printer a player's name as NULL if they were kicked or banned from the server as a result of being warned.
+ As of this version, you can now use the modules (listed above)

+ Now has support for 5 different permission levels if using ULX (which you all should be!!)
+ Server owners can now set up their AWarn so some users can view warnings but not warn players, or some can warn but not delete.
+ All 5 permission levels are registered in XGUI so you can add them to groups with ease! I will also explain them in the body of this post.

+ Shows a message to players who receive a warning showing them how many warnings they have and how many before they are kicked/banned (if enabled)
+ Shows a message to all connected admins when a player with active warnings joins the server.
+ You can now use any of the warning commands (awarnwarn, awarndeletewarnings, awarn_removewarn) from the server's console. This includes RCON such as HLSW.
+ You can now warn and manage warnings by SteamID. Just use a steamID instead of a player's name. This feature is only available through the console commands currently.

+ There was an oversight in the code that sometimes caused the addon to warn the wrong person. Fixed that.
+ The addon didn't correctly handle players with spaces in their name if you typed their whole name or used the GUI to clear or reduce their warnings. Fixed that.

+ Completely overhauled the way the addon stores configurations. They are no longer convars but instead synced globals that are stored in your server's database. (Eccid, this will fix your problem, but you no longer need to store the values in your server.cfg)
+ Added a client menu for non-admins to see their own warnings. Accessable to non-admins with !warn or awarn_menu
+ Added messages showing a player who is warned how many active warnings they have as well as how many until they are kicked/banned.
+ Added a message to any player who joins that has active warnings showing them how many they have as well as how many until they are kicked/banned.
+ Shows which version you are running in the menu.
+ Other minor bug fixes.

+ You no longer are required to include "quotes" around your reason when using the console or chat.

+ Didn't release here as it was just to add support for another Admin mod other than ULX.

+Fixed an error with the script not working on dedicated servers.


Questions/Comments: Feel free to ask them in this thread.



Releases / ULib Gatekeeper - Group Based Whitelisting for ULib
« on: August 11, 2013, 06:50:55 AM »
In response to:,6542.0.html

ULib Gatekeeper

This module for ULib hooks into ULib's authentication system and only allows whitelisted players to join the server.

The whitelist is controlled through ULib access strings. I'll touch on that in a second.

By default only admins can join a server if ULib GateKeeper is enabled. To add more people or groups:
ulx groupallow <group> "ugate_allowaccess" --This will allow anyone in a group to join.
ulx userallow <user> "ugate_allowaccess" --This will allow a specific player to join.

You can also completely enable and disable the system dynamically. This CVar should archive (saving it's most recent setting across server sessions), though if it does not, note that the default setting for this is enabled.

ugate_enabled 0 --System is disabled
ugate_enabled 1 --System is enabled

Garry's Mod handles players in two different ways:

groups - This is a behind the scenes, player tracking system for the purpose of assigning rights within the game and some addons/gamemodes.

teams - This is how players are displayed to other players. (IE: On the scoreboard, or when hovering over a player in some gamemodes)


By default Garry's Mod only has 3 groups. Those groups are superadmin, admin, and user.
According to Garry's Mod a superadmin is on the top. There is not much someone with the superadmin group can not do. Players with the admin group have a little less privilege but are still considered administrators by garrysmod standards.

Without any kind of scoreboard or group to team modification, there is no way you would know what player was in what groups.

UTeam (which is shipped stock with ULX now) takes players in groups and assigns them into teams. Some gamemodes handle their own teams. The TEAM is what displays to other players and this is how they know who you are and what group you are in.


Some server owners find it necessary to create a group higher than superadmin for themselves and call it something else, like owner. The only problem with this is that you have now prevented some stock gmod functions from seeing you as the top level admin, even though you are. Also, by nature you will then assign other users to the superadmin group and now they have more power than they probably should have (even if you've restricted it by ULX standards .. superadmin is still the default highest group and most addons and gamemodes will treat it as such)

With the UTeam plugin, you can call any group whatever you wish. A solution to this issue is to simply CALL the superadmin group 'Owner' if you wish. By doing this, you ensure that only the top level admin is receiving the top level group. Calling the admin group 'Administrator' or creating another group and having it inherit admin allows you to have other groups for different levels of administrators without giving them that root superadmin access.


All of that being said, I die a little on the inside when I see requests for help creating an Owner group and having it inherit the superadmin group because I know that those people are then going to turn around and grant superadmin access to players who probably don't need everything that comes with it.

That's the end of my rant. If anyone has any questions regarding this topic, feel free to ask.

Ulysses Release Archives / AAFK V_3.1 : Anti-AFK system for Garry's Mod
« on: January 13, 2013, 11:09:20 PM »
Anti-AFK Version 3.1

This script monitors a players movements and actions on a server to attempt to determine if they are AFK. If they are found to be AFK it will tag them as such (client-side graphical).
Optionally (enabled by default) you can have the script kick players who have been afk for a certain number of minutes.

Installation Instructions:
Unzip the ULX_AFK folder into your addons folder.
Check the ConVars below and change them from a server console to your liking.

Console Variables:
ulx_afk_flagminutes - ( Default: 8 ) - How long in minutes a player needs to have not performed an action on the server to be flagged as afk
ulx_afk_kickminutes - ( Default: 10 ) - How long in minutes a player needs to be afk before they are kicked if kicking is enabled (see below)
ulx_afk_ignoreadmins - ( Default: 0 ) - Should the script ignore admins? 1-Yes, 0-No
ulx_afk_kickonafk - ( Default: 1 ) - Should the script kick at all? 1-Yes, 0-No : If this is set to 0 then AFKs will only be shown and players will not be kicked.
ulx_afk_kickonlywhenfull - ( Default: 0 ) - If this is enabled, players will only be kicked from the server for being AFK if the server is full. 1-Yes, 0-No


+Fixed the verbage of the log messages to make more sense.

+Recoded from scratch
+garrysmod13 release

As always... Questions/Comments are welcome!

Releases / SpawnVehicle - Requested Addon
« on: January 13, 2013, 08:54:30 PM »
SpawnVehicle - Command based vehicle spawning

This addon was requested by PAL-18

(original Thread:,5957.msg27833.html)

Simply extract to your addons folder as per usual.

This command will spawn a specified vehicle where the user is looking. Should they spawn another vehicle it will remove the first and spawn a new one.

NOTE: This may not work in any gamemodes that are not derived from sandbox.
NOTE: Default access to this command is ALL users. (if you wish to restrict it, just add restrictions to it as normal through XGUI or with the built in group management commands in ULX)


ulx spawnvehicle <vehicle type>
!spawnvehicle <vehicle type>

Should be noted that 'Vehicle Type' is limited to {jeep and airboat}

Ulysses Release Archives / AWarn 3.4 - Robust warning system
« on: January 12, 2013, 07:22:53 PM »
There is a new version released. It was a complete remake so I gave it its own thread. This version is no longer supported or available for download here. Please see the new thread.,7125.0.html

AWarn v.3.4

This addon for ULX allows you to warn users and will display to them the reason they were warned.
The addon will keep track of all historic warnings for review by admins.

Once a user reaches a pre-configurable number of warnings, they are kicked from the server.

ulx warn <player> <reason> - Warn a player for a specified reason
!warn <player> <reason> - Warn a player for a specified reason

ulx seewarns <player> - generates a printout in console of all warnings a player has received in the past, when they received them and who issued the warning.
ulx removewarning<player> <count> - Removes an amount of active warnings from the targeted player. these are the warnings that count towards the player being kicked.
ulx deletewarnings<player> - Completely removes all history of a player's warnings.
ulx listwarnings - Prints a list to console for all connected players who have warnings. This shows their total active warnings and their total warning count.

Configurations (Note: these are server console variables. Run these from the server console)

ulx_warnkick_num [number] - this console variable will set the number of active warnings a player should be allowed to receive before being kicked.
ulx_warnkick_decayrate [number] - this console variable will set the amount of time (in minutes) before a player's warnings are reduced by 1. (note: a player must be connected for their warnings to decay)
ulx_warnkick_ban [number] - Determines if the script should tempban instead of kicking. (1 - On, 0 - Off) (Default: 0)
ulx_warnkick_bantime [number] - Time (in minutes) the script will ban players who have exceeded their threshold for warnings. (Default: 30)

Installation Instructions:
-Extract the ULX_Warn folder into your addons folder.
-Restart your server


+Fixed an issue where warning a player as console would return an error. (Bug reported by rainbowdash)

+Added in console variables to allow for temp banning in place of kicking. See above.

+ Added a command to decrease a players active warnings
+ Added a command to remove all warning history for a player (SUPERADMIN access by default)
+ Added a command to list all active players and their total/active warnings
+Fixed the display bug pointed out by SuperAero.


Questions/Comments: Feel free to ask them in this thread.

Pages: 1 [2] 3 4 ... 6