OpenSteam: Bans and User Management System
This project includes Lua and web application (written in php). Based on ULX MySQL.
Require:
mysqloo
webserver (mysql with php/PDO enabled)
Features:- Each player is added to the database
- It is not necessary for a player to be on a server in order to execute a command (for example, you can add/remove/update admin although he is not on the server, playing...same for bans/removing bans)
- Check user from the database (steamID, status etc)
- Temporary bans
- Login via Steam (web)
- Custom loading screen (with caching steam players and random backgrounds)
- Support multiple servers
- GeoIP support (based on
GeoIP Locator- Country Bans
Installation- Copy SERVER /
opensteam.lua to GAMEROOT/garrysmod/addons/ulx/lua/ulx/modules/sh/
- Copy
WEB folder to your public html folder on the webserver
- Open
config.php and modify the settings for your database
- Open
opensteam.lua and change (to match your database):
local ULX_HOST = "127.0.0.1" local ULX_PORT = 3306 local ULX_DATABASE = "prop_hunt" local ULX_USERNAME = "root" local ULX_PASSWORD = "password" |
- Create database (use
Database.sql)
- Add in your server.cfg the following:
sv_loadingurl "http://YOUR_WEBSITE/loading/?mapname=%m&steamid=%s"
(note: change YOUR_WEBSITE to match yours)- Edit loading/index.php
Change [SERVER NAME HERE] to Your server name and {YOUR SERVER #1 IP HERE} to your server IP. (I will add option to setup this via configuration later). If you know html, css you can easily create your own loading screen.
It is possible to add more images for loading screen. Just put them into /loading/bcg folder.
To add yourself as admin, join the game and type:
rcon_password YOUR_RCON_PASSWORD
rcon ulx updateuser STEAM_{your_steamID} superadmin
(if you don't know your SteamID use
ulx sid YourNick)
In fact, Installation is simple. I just wrote too much detail.
GeoIP Install:Go to
MaxMind website and download
GeoIPCountryCSV.zipUnpack zip archive to
/garrysmod/data folder
Commands:ulx banuser <SteamID> <ban time in minutes (default: 7200 min.)> <Ban Reason (optional)> ulx removeban <SteamID> Remove banned user from the database
ulx updateuser <SteamID> <group: supeadmin, admin, user> Promote/demote user
ulx sid <Player Name> Get user SteamID from the database by name
ulx showgroups Show all groups from the database
ulx checkban Check if player is banned (by Player name)
ulx showplayers Show all players with their entity index in console
ulx banindex <Index separated with comma> <Ban time> <"Reason"> Quickly ban more than one player
All these options are also available through the web application (and more). It is possible to set default expire time for the bans, and allow/disallow permanent bans.
We might add Gaming Panel (
screenshot here), which allows almost full control of the steam games via web (Linux only). Currently, this panel is integrated with our system and forums, and we may plan to do as standalone.
If user login via Steam, web application will automatically recognize him if he is superadmin or admin (or user)....
Demo:
http://stats.ohsystem.net/opensteam/Download:
https://github.com/OHSystem/opensteamScreenshots:Loading screen 1 |
Loading screen 2 |
Edit user |
Configuration |
Permissions |
Permissions2 |
Remote control |
GeoIP Ban |
GeoIP ACPPlease check all before asking a question about database connection. If your installation of MySQLOO is not good, we do not provide support for it. So before posting, make sure that your MySQLOO is working (and without OpenSteam).To do:
- server remote control via web (done)
-
more options...- import bans?