GitHub Repo
Hello Gamers,
After about a month of work it's time to finally share that I've been working on a full rewrite of MGE in VScript to host on potato.tf. It's currently still in-dev, but I'm ready to post it publicly and have people report bugs/parity issues/etc.
The GitHub repo has a much more extensive breakdown of the new features/more complicated setup
Key Features
- 100% Vanilla compatible, no sourcemod required
- No database required for ELO/stat tracking (but still supported!)
- Special rulesets on any arena, explained more below.
- (Almost) full legacy support, Ultiduo is currently untested/half-baked and probably doesn't work yet.
- Supports every map listed in the OG MGEMod spawn configs.
- New arena type: allmeat. Intended for scattergun training, must be configured in your map config or set using !ruleset allmeat on an MGE arena
- Full localization across every language, some are still AI translated and I will gladly accept improved translations.
!ruleset command
BBall on gully mid, KOTH on spire, ammomod on Process Middle, whatever your heart desires. Join an arena with another player and have both players type !ruleset to try it out!
Limitations/Bugs/Etc
- No Ultiduo yet, I forgot xd
- The arena score HUD sometimes fails to update for the attacker, only a visual bug.
- There's no way to make a menu of arena options like SourceMod can, stuck to chat commands or a fully custom screen overlay or something even more exotic.
- !add only supports arena indexes right now (1-18 for classic mge_training), !add viaduct for example will not work, only !add 1 will. This will be fixed later.
- Queue cycling might be buggy, pls report people being put on the wrong team
- custom ruleset KOTH/BBall setup will break if you suicide during setup, just don't do that for now
- Leaderboard currently only works with the database and is disabled by default.
- Many chat commands either aren't implemented or were changed to something else (goodbye !hitblip).
I am not an MGE main and there are probably plenty of minor parity issues to hammer out (endif knockback height is probably not perfectly 1:1), pls report and major discrepancies between this and standard MGEMod behavior below.
If you just want to try it out and don't want to mess around with python scripts/database/whatever:
- drag and drop the "mapspawn.nut" file and "mge" folder into your "tf/scripts/vscripts" folder
-
launch your game with the "-enablefakeip" launch option (no longer necessary) and load an MGE map (I recommend using the workshop mge_training_v8_beta4b upload so you don't need a fastdl)
- type "status" in console and share the IP starting with "169.254" with whoever you want to join.
- Join any arena like you would with standard MGEMod using !add
Servers
US-East: https://potato.tf/connect/100.16.65.112:27020
US-Central: [Coming Soon]
US-West: [Coming Soon]
EU-West: https://potato.tf/connect/95.216.101.151:27300
SGP: [Coming Soon]
the website is still very much geared towards our mvm servers, including the demo page, however you can download SourceTV demos of your MGE games from https://potato.tf/demos. US-East demos are under the "USA2" region.
Pls provide a demo link with bug reports if you can, or at least your steamid so I can search for the demo later, the demo page updates every ~30mins.
[url=https://github.com/potato-tf/MGE-VScript]GitHub Repo[/url]
Hello Gamers,
After about a month of work it's time to finally share that I've been working on a full rewrite of MGE in VScript to host on potato.tf. It's currently still in-dev, but I'm ready to post it publicly and have people report bugs/parity issues/etc.
The GitHub repo has a much more extensive breakdown of the new features/more complicated setup
[b]Key Features[/b]
[list]
[*] 100% Vanilla compatible, no sourcemod required
[*] No database required for ELO/stat tracking (but still supported!)
[*] Special rulesets on any arena, explained more below.
[*] (Almost) full legacy support, Ultiduo is currently untested/half-baked and probably doesn't work yet.
[*] Supports every map listed in the OG MGEMod spawn configs.
[*] New arena type: allmeat. Intended for scattergun training, must be configured in your map config or set using !ruleset allmeat on an MGE arena
[*] Full localization across every language, some are still AI translated and I will gladly accept improved translations.
[/list]
[b]!ruleset command[/b]
BBall on gully mid, KOTH on spire, ammomod on Process Middle, whatever your heart desires. Join an arena with another player and have both players type !ruleset to try it out!
[b]Limitations/Bugs/Etc[/b]
[list]
[*] No Ultiduo yet, I forgot xd
[*] The arena score HUD sometimes fails to update for the attacker, only a visual bug.
[*] There's no way to make a menu of arena options like SourceMod can, stuck to chat commands or a fully custom screen overlay or something even more exotic.
[*] !add only supports arena indexes right now (1-18 for classic mge_training), !add viaduct for example will not work, only !add 1 will. This will be fixed later.
[*] Queue cycling might be buggy, pls report people being put on the wrong team
[*] custom ruleset KOTH/BBall setup will break if you suicide during setup, just don't do that for now
[*] Leaderboard currently only works with the database and is disabled by default.
[*] Many chat commands either aren't implemented or were changed to something else (goodbye !hitblip).
[/list]
I am not an MGE main and there are probably plenty of minor parity issues to hammer out (endif knockback height is probably not perfectly 1:1), pls report and major discrepancies between this and standard MGEMod behavior below.
If you just want to try it out and don't want to mess around with python scripts/database/whatever:
[list]
[*] drag and drop the "mapspawn.nut" file and "mge" folder into your "tf/scripts/vscripts" folder
[*] [s]launch your game with the "-enablefakeip" launch option[/s] (no longer necessary) and load an MGE map (I recommend using the workshop mge_training_v8_beta4b upload so you don't need a fastdl)
[*] type "status" in console and share the IP starting with "169.254" with whoever you want to join.
[*] Join any arena like you would with standard MGEMod using !add
Servers
US-East: https://potato.tf/connect/100.16.65.112:27020
US-Central: [Coming Soon]
US-West: [Coming Soon]
EU-West: https://potato.tf/connect/95.216.101.151:27300
SGP: [Coming Soon]
the website is still very much geared towards our mvm servers, including the demo page, however you can download SourceTV demos of your MGE games from https://potato.tf/demos. US-East demos are under the "USA2" region.
Pls provide a demo link with bug reports if you can, or at least your steamid so I can search for the demo later, the demo page updates every ~30mins.
EU-West server up
https://potato.tf/connect/95.216.101.151:27300
0.2.0 0.2.1
GitHub
- Reordered included database integration for stat tracking
- Your old database columns are now ordered wrong, name goes second.
- I'm gonna avoid any database-breaking stuff as much as I can, putting the name column at the end was the only really dumb thing that needed changing I think, don't expect much more of this (if any).
- various fixes/improvements to VPI integration by Mince
- You may see random spurious TimeoutError from this, this will be fixed soon and can be safely ignored.
- Fixed spawn rotations for BBall/Koth
- Fix the countdown timer being incorrect, didn't use Time() before
- Added !hud command to enable/disable HUD like SM MGE
- Add 4player support to !ruleset (untested)
- Don't use EFL_KILLME for preserving ents on round state changes (too many side effects)
- Removed !first chat command from !help/!mgehelp printout (did anyone actually use this regularly?)
0.2.1 fixes a timeout issue with the database in 0.2.0, forgot to bump up the timeout threshold for the player stats fetching and high ping players would just never get their ELO/stats from the db.
EU-West server up
https://potato.tf/connect/95.216.101.151:27300
[b][s]0.2.0[/s] 0.2.1[/b]
[url=https://github.com/potato-tf/MGE-VScript/releases/tag/0.2.1]GitHub[/url]
[list]
[*]Reordered included database integration for stat tracking
[list]
[*]Your old database columns are now ordered wrong, name goes second.
[*]I'm gonna avoid any database-breaking stuff as much as I can, putting the name column at the end was the only really dumb thing that needed changing I think, don't expect much more of this (if any).
[/list]
[*]various fixes/improvements to VPI integration by Mince
[list]
[*]You may see random spurious TimeoutError from this, this will be fixed soon and can be safely ignored.
[/list]
[*]Fixed spawn rotations for BBall/Koth
[*]Fix the countdown timer being incorrect, didn't use Time() before
[*]Added !hud command to enable/disable HUD like SM MGE
[*]Add 4player support to !ruleset (untested)
[*]Don't use EFL_KILLME for preserving ents on round state changes (too many side effects)
[*]Removed !first chat command from !help/!mgehelp printout (did anyone actually use this regularly?)
[/list]
0.2.1 fixes a timeout issue with the database in 0.2.0, forgot to bump up the timeout threshold for the player stats fetching and high ping players would just never get their ELO/stats from the db.
This is epic, finally can play mge with my friends in our shithole country at a respectable ping :D
This is epic, finally can play mge with my friends in our shithole country at a respectable ping :D
Took a bit of a break from this project but I'll be pushing a new release relatively soon
the 0.2.1 release on github is currently outdated and has a few bad bugs (!remove not working lmao), the main branch release is fixed but I want to fix bball bugs before sending it. If you want to play it *right now*, clone the main branch directly instead of using that release.
Took a bit of a break from this project but I'll be pushing a new release relatively soon
the 0.2.1 release on github is currently outdated and has a few bad bugs (!remove not working lmao), the main branch release is fixed but I want to fix bball bugs before sending it. If you want to play it *right now*, clone the main branch directly instead of using that release.
this is awesome and a good contribution to the community, even if it may not be used a lot because most people already have sourcemod servers, its a good thing to have. really nice work
this is awesome and a good contribution to the community, even if it may not be used a lot because most people already have sourcemod servers, its a good thing to have. really nice work
Yeah I don't expect the existing mge networks to replace their SM versions just yet (if ever), especially ones that need the database connection. Once its polished up it will be better for long term stability though. When the sdk update dropped every MGE server was dead thanks to sourcemod going down for a day, meanwhile my vscript server almost immediately filled up with 25 people completely unscathed lole.
Once it's stable and pretty much finished people can also pack it directly into the map and put it on the workshop for even easier installation. Packing it into the map also means you can get a lot more exotic with custom overlays and stats pages and whatnot that don't need to be sent over fastdl and can just be baked directly into the map. Arena scoreboards, custom HUD, a lot more possibilities to bring it into a new era.
I imagine some people reading that will get spooked by the idea of turning mge into workshop slop and I do recognize that I/any mappers would need to be very careful about this. Everything must be done through playtesting with real mge rats and not random workshop creators, and most importantly a lot of it should be optional to avoid fixing what isn't broken. Still got time to think about how to do this before it's even at this point.
I've got more lofty ideas like "infinite" maps using propper templates to dynamically spawn however many spires/blands mids/etc that you want so you never need to wait for one to open, but that's a lot further down the line and is currently just an idea.
Yeah I don't expect the existing mge networks to replace their SM versions just yet (if ever), especially ones that need the database connection. Once its polished up it will be better for long term stability though. When the sdk update dropped every MGE server was dead thanks to sourcemod going down for a day, meanwhile my vscript server almost immediately filled up with 25 people completely unscathed lole.
Once it's stable and pretty much finished people can also pack it directly into the map and put it on the workshop for even easier installation. Packing it into the map also means you can get a lot more exotic with custom overlays and stats pages and whatnot that don't need to be sent over fastdl and can just be baked directly into the map. Arena scoreboards, custom HUD, a lot more possibilities to bring it into a new era.
I imagine some people reading that will get spooked by the idea of turning mge into workshop slop and I do recognize that I/any mappers would need to be very careful about this. Everything must be done through playtesting with real mge rats and not random workshop creators, and most importantly a lot of it should be optional to avoid fixing what isn't broken. Still got time to think about how to do this before it's even at this point.
I've got more lofty ideas like "infinite" maps using propper templates to dynamically spawn however many spires/blands mids/etc that you want so you never need to wait for one to open, but that's a lot further down the line and is currently just an idea.
got dem braindawgs
https://www.youtube.com/watch?v=CXEUfWNmBto
0.3.0
New release out on GitHub
- Fixed !remove not working
- Fixed BBall and other arenas having incorrect spawn rotations and spawning players on the wrong sides
- Added PER_ARENA_LOGGING to config.nut, this will dump out JSON data after each match.
- Currently requires setting a secret token in vpi.nut, as the JSON encoder/decoder is part of this system.
- Output is written to tf/scriptdata/mge_arenalogs
- The naming convention for the output: [steamidwinner]_[steamidloser]_[arenaname]_[unixtimestamp].json
- [steamidwinner1]|[steamidwinner2]_[steamidloser1]|[steamidloser2]_[arenaname]_[unixtimestamp].json for 2v2 arenas (BBall)
- Fixed map restart warning spamming players with sounds/events every interval, fixed restart timer not syncing with actual timer
- Reloading the scripts without restarting the map will cause it to de-sync until the next map reset, you should completely reload the map if you want to reload the scripts outside of a dev/testing environment.
- Fixed hotloading the scripts with script_execute not working, The above issue with the map timer will persist but otherwise everything should work.
- Removed unnecessary spectator chat duplicating, I thought spectator chat wasn't relayed to alive players but I was mistaken I guess.
[b]0.3.0[/b]
New release out on [url=https://github.com/potato-tf/MGE-VScript/releases/tag/0.3.0]GitHub[/url]
[list]
[*] Fixed !remove not working
[*] Fixed BBall and other arenas having incorrect spawn rotations and spawning players on the wrong sides
[*] Added PER_ARENA_LOGGING to config.nut, this will dump out JSON data after each match.
[list]
[*] Currently requires setting a secret token in vpi.nut, as the JSON encoder/decoder is part of this system.
[*] Output is written to tf/scriptdata/mge_arenalogs
[*] The naming convention for the output: [steamidwinner]_[steamidloser]_[arenaname]_[unixtimestamp].json
[*] [steamidwinner1]|[steamidwinner2]_[steamidloser1]|[steamidloser2]_[arenaname]_[unixtimestamp].json for 2v2 arenas (BBall)
[/list]
[*] Fixed map restart warning spamming players with sounds/events every interval, fixed restart timer not syncing with actual timer
[list]
[*] Reloading the scripts without restarting the map will cause it to de-sync until the next map reset, you should completely reload the map if you want to reload the scripts outside of a dev/testing environment.
[/list]
[*] Fixed hotloading the scripts with script_execute not working, The above issue with the map timer will persist but otherwise everything should work.
[*] Removed unnecessary spectator chat duplicating, I thought spectator chat wasn't relayed to alive players but I was mistaken I guess.
[/list]
how do you make the bots add up after making the navmesh
how do you make the bots add up after making the navmesh
baconator2685how do you make the bots add up after making the navmesh
There's supposed to be a command for it but I'm not sure if it works out of the box
For now, add however many bots you want with tf_bot_quota and run this in console:
script EntFire("player", "runscriptcode", "if (IsPlayerABot(self)) AddPlayer(self, `Badlands Middle`)")
If you remove "if (IsPlayerABot(self))" it'll also add you to the arena along with the bots
You may get script errors related to player_hurt if they start attacking eachother before adding, since bots are forcibly spawned outside of an arena, ignore for now.
[quote=baconator2685]how do you make the bots add up after making the navmesh[/quote]
There's supposed to be a command for it but I'm not sure if it works out of the box
For now, add however many bots you want with tf_bot_quota and run this in console:
[code]script EntFire("player", "runscriptcode", "if (IsPlayerABot(self)) AddPlayer(self, `Badlands Middle`)")[/code]
If you remove "if (IsPlayerABot(self))" it'll also add you to the arena along with the bots
You may get script errors related to player_hurt if they start attacking eachother before adding, since bots are forcibly spawned outside of an arena, ignore for now.
0.4.0
New release out on GitHub
Servers up in TX, BR, SGP, and EU. BR might go down soon since that box is too expensive for me to keep. Servers with an IP starting with 169.254... will have issues with the direct connect link and you need to join through console.
US East should be up again soon, no guarantee. It's back up
https://potato.tf/servers
Can also find them in the server browser by searching potato in tags and filtering maps to mge_.
- Fixed KOTH
- cap contesting works correctly
- fixed decay going negative
- improved HUD to be more intuitive
- Major improvements to the database/git update system
- Load an MGE map at least once before setting this up so the necessary scriptdata folders get created
- Added an easy set-up script for windows users with mge_windows_setup.bat
- You still need to install mysql/sqlite yourself, the script will walk you through it.
- Fixed stat fetching not working due to an incorrectly ordered DB query
- github auto-updates work as intended, had several issues
- Fixed the python script crashing if the database doesn't exist, will now automatically create one on start
- Sensitive information is now read from an env file. Manually set environment variables are still supported
- Added "console commands"
- VScript doesn't have a way to register custom commands so this hijacks the cl_class command
- All chat commands can be sent through this instead. For example: cl_class add 2 is the same as !add 2
- For running the same command multiple times, you will need to reset it yourself manually. cl_class ""; cl_class add 2
- Added a basic admin system for sending vscript commands to server console. See ADMIN_LIST at the top of config.nut
- Requires sv_point_allow_servercommand always.
- Admins can send any arbitrary script functions by doing !adminscript <command here>.
- Also works with the cl_class hack, for example cl_class adminscript MGE_DoChangelevel() to reload the map.
- DOES NOT HANDLE QUOTES CORRECTLY. This will be fixed later but anything that uses quotes will cause problems.
- Fixed handicap not working correctly, no longer needs to be set in pre-round, will apply on next respawn
- Fixed HUD not updating correctly for first blood/occasionally not updating until respawn
- Moved HUD a bit further to the left.
- Fixed BBall not resetting correctly on player remove
- Fixes to custom rulesets, !ruleset 4player should work now. Suicide during setup should reset the arena but not fully tested.
- Fixed error spam caused by tf_bot_quota bots attacking eachother in the void
- Added a language fallback to english if the localized string can't be found in another language.
- Fixed some colored chat text printing incorrectly.
- Various formatting, performance, etc improvements. localization.nut is less messy
Feeling good about where this is at now but still plenty of things to fix.
[b]0.4.0[/b]
New release out on [url=https://github.com/potato-tf/MGE-VScript/releases/tag/0.4.0]GitHub[/url]
Servers up in TX, BR, SGP, and EU. BR might go down soon since that box is too expensive for me to keep. Servers with an IP starting with 169.254... will have issues with the direct connect link and you need to join through console.
[s]US East should be up again soon, no guarantee.[/s] It's back up
https://potato.tf/servers
Can also find them in the server browser by searching potato in tags and filtering maps to mge_.
[list]
[*] Fixed KOTH
[list]
[*] cap contesting works correctly
[*] fixed decay going negative
[*] improved HUD to be more intuitive
[/list]
[*] Major improvements to the database/git update system
[list]
[*] Load an MGE map at least once before setting this up so the necessary scriptdata folders get created
[*] Added an easy set-up script for windows users with mge_windows_setup.bat
[list]
[*] You still need to install mysql/sqlite yourself, the script will walk you through it.
[/list]
[*] Fixed stat fetching not working due to an incorrectly ordered DB query
[*] github auto-updates work as intended, had several issues
[*] Fixed the python script crashing if the database doesn't exist, will now automatically create one on start
[*] Sensitive information is now read from an env file. Manually set environment variables are still supported
[/list]
[*] Added "console commands"
[list]
[*] VScript doesn't have a way to register custom commands so this hijacks the cl_class command
[*] All chat commands can be sent through this instead. For example: cl_class add 2 is the same as !add 2
[*] For running the same command multiple times, you will need to reset it yourself manually. cl_class ""; cl_class add 2
[/list]
[*] Added a basic admin system for sending vscript commands to server console. See ADMIN_LIST at the top of config.nut
[list]
[*] Requires sv_point_allow_servercommand always.
[*] Admins can send any arbitrary script functions by doing !adminscript <command here>.
[*] Also works with the cl_class hack, for example cl_class adminscript MGE_DoChangelevel() to reload the map.
[*] DOES NOT HANDLE QUOTES CORRECTLY. This will be fixed later but anything that uses quotes will cause problems.
[/list]
[*] Fixed handicap not working correctly, no longer needs to be set in pre-round, will apply on next respawn
[*] Fixed HUD not updating correctly for first blood/occasionally not updating until respawn
[*] Moved HUD a bit further to the left.
[*] Fixed BBall not resetting correctly on player remove
[*] Fixes to custom rulesets, !ruleset 4player should work now. Suicide during setup should reset the arena but not fully tested.
[*] Fixed error spam caused by tf_bot_quota bots attacking eachother in the void
[*] Added a language fallback to english if the localized string can't be found in another language.
[*] Fixed some colored chat text printing incorrectly.
[*] Various formatting, performance, etc improvements. localization.nut is less messy
[/list]
Feeling good about where this is at now but still plenty of things to fix.