Code Monkey home page Code Monkey logo

get5's Introduction

splewis/get5

Build Status Discord Chat Downloads

Status: Supported. Development paused pending more information about CS2.

Get5 is a standalone SourceMod plugin for CS:GO servers for running matches.

Documentation


Latest versions

Stable

If you don't know which one you need, this is the one you need.

Latest version

Prerelease

โš ๏ธ Pre-releases are meant for development and testing only.

Latest version


Discord

A Discord server is available for general discussion.

Discord


Reporting bugs

Please file a GitHub issue and fill out as much information as possible. Reproducible steps and a clear version number will help tremendously. The Get5 version can be displayed with get5_status.

Contributions

Pull requests are welcome. Please follow the general coding formatting style as much as possible.

get5's People

Contributors

alexbksiad avatar antipaste avatar apfelwurm avatar arildboifot avatar b3none avatar bernardoalves avatar dependabot[bot] avatar drarig29 avatar enerbewow avatar gelzis avatar grenadecx avatar jenrik avatar jfkz avatar jpotier avatar kroleg avatar miped avatar moritzloewenstein avatar nickdnk avatar phlexplexico avatar ringvold avatar saph1s avatar sidibecker avatar splewis avatar tandelk avatar tapir avatar technoblazed avatar timisillman avatar toomuchio avatar vilkkuv avatar yannickgloster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

get5's Issues

Add countdown time for team to connect/ready up

If they don't connect/ready in time, the match ends (and the proper forwards fire).

Might mean there should be an additional forward: Get5_OnFailToStart with booleans for each match team if they failed to ready up/connect.

Invalid JSON Upon 'loadmatch_url'

Hey Sean,

I'm making an attempt to load a match.json file using the get5_loadmatch_url command. It keeps telling me that there is no "team1" section. I'm using the exact format described in your included example_match.json file and there seem to be no extraneous brackets or missing commas anywhere. I saw you possibly updated the format of the KeyValue match configs and didn't touch the JSON config in the same commit. I don't know if you changed anything with JSON parsing and forgot to update the documentation, but here's the file I'm using for reference: http://pastebin.com/7qkKP9zZ

Thanks in advance for any help you can give me.

Steps to reproduce

  • Plugin version: latest dev
  • Sourcemod version: latest dev

Modify message in "Timer_PauseTimeCheck"

(Line 481 in get5.sp) In "Command_Pause" You are using:

char resetString[32];
if (g_ResetPausesEachHalfCvar.IntValue != 0) {
resetString = " for this half";
}

in Get5Message

but it doesn't effect Get5MessageToAll in "Timer_PauseTimeCheck" (line 520 in get5.sp).

Just replace with this:

Get5_MessageToAll("%s has %d seconds of pause time left%s.",
g_FormattedTeamNames[team], timeLeft, resetString);

I didn't create a pull request, because it's very small code replacement.

Disable the teamjoin menu

Hinges on #1's completion.

Two parts:

  • set sv_disable_show_team_select_menu 1
  • inside a joingame command listener, put the player on the correct team

LO3 is not happening

Hey splewis!
I have updated my server to the latest plugin version (we were on the first version) and now the LO3 is not happening, just a quick restart + text output of "The match will begin in 10 seconds."
Any ideas how to fix? Did you disable it in any version?

JSON won't load, for some reason.

Hey Sean.
I have this weird problem - the JSON file won't load from an url, but if I load it from the game directory, it will load perfectly.

It didn't do it before until my developer added some features to match my needs (we are working on an automated pug system, like FACEIT / PopFlash, but only local for our country.), but he didn't add / touch anything JSON-related things (I'm not a developer in your / his level, but I think it should break if we didn't touch it.)

What he did basically:

  1. If 10 players are not connected, the match won't start and the player(s) who didn't join will get banned in a mysql table at the website, which contains all the bans and prevents from banned players to start a queue. He checks which players didn't connect from the lobby table in our database.
  2. If a player gets disconnected after a live match, he will get banned after 5 minutes.
    He didn't touch any JSON features.

Here are some examples:
screen shot 2016-06-15 at 11 11 12 am
screen shot 2016-06-15 at 11 16 09 am

Steps to reproduce

  • Plugin version: lastest
  • Sourcemod version: 1.8

Posting info about team captains before team ready

After a message "Type !ready when ready for voting etc." post message in new line:
Team captain for {GREEN or teamnameformated}$TEAM_1/2 {NORMAL}is: {GREEN}$TEAM_CAPTAIN_1/2

If one/two of teams dont have team captain yet, it should post:
Team captain for $TEAM_1/2 is not selected yet.

Honestly i think that it will helps a little bit and prevent everyone to writing !ready and not knowing how is exacly a team captain, who can vote etc.

This is what i did: I tried to implement this, but i dont know how to request name of the captain from variables (yeah, im stupid)

http://scr.hu/53sa/m65zv - screen

Reported series winner sometimes incorrect after overtime.

No idea how this can be replicated, but in numerous matches played with this plugin, the reported winner of the series in chat has been the wrong team. This usually happened to us after an overtime win but additionally happened a single time after a normal length game with no overtime.

Warmup doesn't work

When server starting it load warmup.cfg but when I'm connecting it load live.cfg, it looks like get5_autoload_config doesn't work or it is overwritten by get5_live_cfg. I have only 16k money when I should have 65k (when I exec cfg manually it's 65k), it should be 1337 rounds but it's only 30, it shouldn't be roundtime and should be warmup but it is 2min roundtime and no warmup...

  • Plugin version: 0.3.0
  • Sourcemod version: 1.7.3-dev+5303

Edit

On screenshot it is shown. It loads ESL cfg instead of warmup cfg
13517861_1083014795068960_82007364_o

get5_addplayer not working correctly

When I try to add a steamid to a team, it returns unknown team.

rcon get5_addplayer STEAM_1:1:48254312 team1
Unknown team: must be one of team1, team2, spec

Same results whether I use team1, team2, or spec

Figure out how to place players onto teams during halftime periods

This is a relatively serious issue.

The complexity seems to come from the game's auto-swap at halftime. My expectation would be to just place the client onto the current team still (if first half team was ct, then put on ct in halftime), but that doesn't seem to always work.

I suspect clients are marked by the server in the announce_phase_end event or similar at halftime for a pending swap, and only those players get swapped. The netprop m_iPendingTeamNum is not being used for this, so maybe this is wrong.

Right now teamjoin commands are fully disabled during halftime events, so clients must wait for the 1st round freezetime to join.

Don't always require knife rounds for side choices

I.e., the match config should have a always_use_knife_round key that defaults to false (or 0).

If not always using knife rounds, the veto phase should include picking the sides (where the team that didn't pick map x gets to choose sides on map x). The last map would always have a knife round.

Won't exec Warmup.cfg

When i load a match config it cannot exec the warmup.cfg and also seems that when the knife round start it doesn't use the knife.cfg becuase players still get pistols and the bomb and the time of the round is only 1:50 instead on 60 minutes. Any help would be great.

Console when exec loadmatch : http://prntscr.com/bgp54u

Team1 error

[get5.smx] Missing "team1" section in match json
[get5.smx] Failed to load match config from Game.json

How can I fix this?

Stop match

Hi, is possible to reload the warmup.cfg file after get5_endmatch please ?

get5_check_auths 0

I would like to allow it so it doesn't lock people to teams so steam id's are not required. When reading though the wiki it says under the scrim section to go to "cfg/sourcemod/get5.cfg" and edit "get5_check_auths 0" . This is not in the get5.cfg and i also tried adding it but says unknown command. Thanks

Add support for BO2's

It'd be nice if there was some way of having a best-of-2 series playable. I have no idea how vetoes work in this situation, though.

Webpanel

Hi, I'm the founder of trip pugs and i have been using your pug system and moved to the get5 system but i need more then a in-game plugin, I need to be able to have someway for people to join the server with the cfg already loaded. I see you have a http pull so that helps with the cfg loading bit but the lobby bit is where im stuck. Can you help??

Missing team1 in JSON

Expected behavior

Successfully load the match json config

Actual behavior

L 07/03/2016 - 23:17:02: [get5.smx] Failed to load match config: Missing "team1" section in match json
L 07/03/2016 - 23:17:02: [get5.smx] Failed to load match config: invalid match json
(Note this is with http://www. infront of the directory and using the example_match.json from here)

Steps to reproduce

  • Plugin version: 0.3.0
  • Sourcemod version: 1.8 - build 5916

Add bot when some players missing

Hi
First of all thanks for this mod, it is very useful! :)

I'd like to know if there is a way to lets bots join the game when some players missing

Thanks for support!

Feature Request: Cooldown API and forfeit votes

I'd like to constantly update get5 on my servers instead of staying behind because of some features I (horribly) implemented in my servers, hopefully you'll add them!
#1. Cooldown API

When a player leaves, let him have X minutes to reconnect. If he's not coming back, call a global forward that is something like that:

forward void Get5_OnClientCooldown(const char[] steamid, int disconnectiontime);

(steamid being AuthId_Engine and disconnectiontime being the unix timestamp of the moment that player left the server)

This API will be very helpful for fully automatic servers with cooldowns system. It will allow developers to ban players for an amount of time that depends on how many times they've been banned before, with SourceBans for example. I'm willing to send a pull request that does it if you add this feature!
#2. Forfeit votes

Add a command (sm_forfeit) that initializes a vote to the players of the same team. If the whole team votes yes, stop the game and make the opposite team the winners.

Also add a global forward if possible, something like Get5_OnTeamForfeit(int team).


Thanks for reading, good luck with development! ๐Ÿ‘

Per-client ready up system

Some uses of get5 would rather have a ready-up per client. I can imagine adding a !start command to force ready the "team" once all the clients on it are ready in the case of allowing a 4v5 team to start their match.

I'm not sure if it should always be per-client or a cvar. I think consistency here is better.

.smx hidden

I can't seem to find some of the functions that appear to be inside a compiled SMX.

Get5_OnSeriesResult
Get5_OnMapResult

Score reporting bug

If reporting a bug, fill in the following sections:

Expected behavior

After a round is won, show [Get5] Teamname1 1 - 1 Teamname2

Actual behavior

http://i.imgur.com/9XWDuAe.jpg

Steps to reproduce

  • Plugin version: 210
  • Sourcemod version: SourceMod Version: 1.8.0.5916
    Start a game, 5vs5. play a round

MySQL Player Data Not Posting Correctly (Simple MySQL Syntax Error)

Hey Sean,

There's a slight MySQL syntax error that I found on lines 239 and 240 of get5_mysqlstats.sp.

Currently, the lines look like this:

v1, v2, v3, v4, v5
2k, 3k, 4k, 5k, \

The correct syntax is as follows. Simply a missing comma on line 239 and an extraneous comma on line 240.

v1, v2, v3, v4, v5,
2k, 3k, 4k, 5k \

After making the changes locally and recompiling, the individual player stats were posted to the MySQL DB correctly. Good job nonetheless, the plugins work exceptionally smoothly.

Steps to reproduce

  • Plugin version: latest dev
  • Sourcemod version: latest dev

Configurable demo save directory?

Is it possible to change the directory where demos are saved after being automatically recorded?

Would be nice to have this as a parameter in the config for setups where you need to store the demos outside of the default directory.

Typo in line 35 of generated get5.cfg

Expected behavior

// Whether clients can use the !stop command to restore to the last round

Actual behavior

// Whether clients cna use the !stop command to restore to the last round

Steps to reproduce

  • Plugin version: latest development
  • Sourcemod version: latest development

Suggestions

I've used Warmod plugin to organize lans before. Since it's not updated anymore been looking for a replacement that is somewhat good. Since your other plugins are very good, hoping this will be as good. For running a small tournament, currently this plugin would suit perfectly. But running a 32+ team LAN wouldn't be so easy during the group stage. So here are some suggestions.

  • Add some way to add team captains to some local file. So if one captain joins a team that team will automatically have team name and country set like warmod had its captains file. http://pastebin.com/raw/whpRebw2
  • Captains can 1v1 knife on who starts the veto process. Warmod had 5v5 knife for that, but id proved to be somewhat time consuming.
  • Captains can choose if they want veto BO1,BO3 or BO5 with a chat command. Warmod had default veto set for BO1. If both captains would write !vetobo3 it would choose that veto process instead.

REMOTE_CONFIG_FILENAME

I haven't tried yet, but I can see that #define REMOTE_CONFIG_FILENAME "remote.json" can conflict with other servers runned on the same folder.

Add non-forced teams/steamids

Dreamhack Austin couldn't cope with having every players steamid (although they are still using pugsetup).

A cvar get5_check_auths (default 1) that disables all auth checking and assumes players will get on the right team would help for some use cases.

Add stats ?

I think you should add atleast common stats (kills, deaths, headshots, assists), with option for local storage and MySQL. But great project anyways, looking forward for great stuff.

Need define path to store backups and stats

@splewis

Need to set up path to store backups and stats (for example csgo/get5/stats and csgo/get5/backups) that can be configured.

For example, I use get5_demo_name_format = 'demos/{MATCHID}_map{MAPNUMBER}_{MAPNAME}' to save all demos in one folder.

If I can add same convars for backups and stats - just reply here and I do this.

Add way to force pause duration

I.e., a setting that will cause max pause time to be ignored and allow using max number a pauses where each pause is a fixed amount of time (in line with the the 4 30-second pause rules Valve + ESL will be using).

Command !stop works in 50/50

Hello!
Everything works perfect, but! Today i wanted to test out command "!stop". And this is what happend. Backup was succesfully loaded, match was stopped like it supposed to do, but overall score was 0:0 for a map. I was trying to load round 3,4,5 etc. but it's 0:0 all the time, even if the chat output says it's round 3,4,5. In backup files i noticed this:

"SaveFile" { "timestamp" "2016-05-15 11:15:10" "team1" "Prownage.pl" "team2" "AlsenTeam.Female" "map" "de_cbble" "round" "8" "FirstHalfScore" { "team1" "0" "team2" "0" }

This bug is because i did something wrong with the configuration server?

Best regards, NUM.

Failed to load. Native System2_DownloadFile was not found

I reinstalled my server for ip reasons, and now after adding the latest development build, the plugin fails to load. In log I can only catch this:
L 05/14/2016 - 16:54:51: [SM] Unable to load plugin "get5.smx": Native "System2_DownloadFile" was not found

I have System2 extension in my extensions folder, also the include in the scripting/include. What am I missing?

Match.cfg

This file should be generated thru a website?

  • Easy to manage and not everyone need's access to the server.
    If you already have a FTP connected to the server, something like this could do it automatically.

Contact Request - delete after reading please :-)

Hey Sean,

I found no other way to contact you, so please contact me at gitter.im or email
janek.rahrt [at] me [dot] com
if you are interested in being a part of the next big project for the csgo community :-)

Contact me and I will provide more Infos about me and the project

CU

issue loading a match

Hey,

I've followed your example match, and every time I attempt to load a match, I get the following error:

[get5.smx] Failed to load match config: invalid match kv

do you know of anyway to check and see which kv is invalid?

Aliases for !ready/!notready

Am I able to add aliases for client commands like on Your pugsetup? Or just define it in get5.sp or somewhere else?

  • Plugin version: 0.3.1
  • Sourcemod version:1.7.3-dev+5303

How do I add custom commands (like .gaben to ready up)?

Add a new entry in addons/sourcemod/configs/pugsetup/chataliases.cfg. For example:

"ChatAliases"
{
".gaben" "sm_ready"
}

Add a template for get5_creatematch command

This is primarily meant to help users that use get5 for scrims (https://github.com/splewis/get5/wiki/Using-get5-for-scrims). Instead of the get5_scrim command that does get5_creatematch but with slightly different settings, it would've been better to adjust get5_creatematch with a way of having a template that could let a user decide some of the values - but still let the command auto-fill the team1/team2/spectator data.

The template would be the same as a match config - but without the team1, team2, and spectator sections.

Problem with reconnecting

Hi splewis, today I started a match with "get5_creatematch"
All the players were in their teams, when I reconnected and entered the team that I was before, to a 4 man team, the server moved me to coach, when I disabled coaching, the server kicked me.
Is this a bug? if not, is there any way to prevent this?

Typo in get5.sp for command description

In the get5_removeplayer command declaration on lines 212 and 213, the description of the command is the description of the get5_addplayer command.

RegAdminCmd("get5_removeplayer", Command_RemovePlayer, ADMFLAG_CHANGEMAP, "Adds a steamid to a match team");

The description should read: "Removes a steamid from a match team"

Steps to reproduce

  • Plugin version: latest dev
  • Sourcemod version: latest dev

Swap team moved players to other team

Expected behavior

When knife round winner type !swap, players from one team moves to another AND team name and stats moves too.

Actual behavior

When knife round winner type !swap, players from one team moves to another BUT team name and stats stay on the same sides.

Steps to reproduce

  1. Create match
  2. Go to knife round
  3. Win knife round
  4. Type !swap.
  • Plugin version:
    0.4.0-dev
  • Sourcemod version:
    SourceMod v 1.7.3 (build 5302) w/ MetaMod v 1.10.6

Add time limit for team pauses

E.g.," team 1 has 5 minutes left for pauses this map"

Something like: get5_pause_time_per_half , default to 0 = unlimited time

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.