{"id":19952530,"url":"https://github.com/dosmike/sm-miscplugins","last_synced_at":"2026-03-19T12:44:30.808Z","repository":{"id":65960481,"uuid":"483329028","full_name":"DosMike/SM-MiscPlugins","owner":"DosMike","description":"misc plugins that i didn't feel like creating a separate repo for","archived":false,"fork":false,"pushed_at":"2025-12-16T16:33:20.000Z","size":562,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-20T07:38:09.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SourcePawn","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DosMike.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-19T16:43:02.000Z","updated_at":"2025-12-16T16:33:25.000Z","dependencies_parsed_at":"2025-01-12T06:23:41.021Z","dependency_job_id":"e9db2c89-d833-4f08-bbc0-2d89bed9ed0f","html_url":"https://github.com/DosMike/SM-MiscPlugins","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/DosMike/SM-MiscPlugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FSM-MiscPlugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FSM-MiscPlugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FSM-MiscPlugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FSM-MiscPlugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DosMike","download_url":"https://codeload.github.com/DosMike/SM-MiscPlugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FSM-MiscPlugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30075910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T05:31:57.858Z","status":"ssl_error","status_checked_at":"2026-03-04T05:31:38.462Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T01:13:29.942Z","updated_at":"2026-03-04T08:01:44.419Z","avatar_url":"https://github.com/DosMike.png","language":"SourcePawn","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\r\nThis repo is for smaller plugins that I don't feel like creating a dedicated repo for.\r\n\r\nTable Of Content\r\n* [[TF2] Additional Settings](#TF2-Additional-Settings)\r\n* [[TF2/MvM] AutoReady](#TF2MvM-AutoReady)\r\n* [[ANY] FartCombat](#TF2-FartCombat)\r\n* [[ANY] Map Props](#ANY-Map-Props)\r\n* [[ANY] Name Checker](#Name-Checker)\r\n* [[TF2] QuickTrack](#TF2-QuickTrack)\r\n* [[TF2] RaidBlocker](#ANY-RaidBlocker)\r\n* [[ANY] SlapAndBury](#ANY-SlapAndBury)\r\n* [[ANY] SmartEdictOverflow](#ANY-SmartEdictOverflow)\r\n* [[TF2] Spec Ghost](#TF2-Spec-Ghost)\r\n* [[TF2] TDM Tickets](#TF2-TDM-Tickets)\r\n* [[TF2] Train-Streak](#TF2-Train-Streak)\r\n* [[ANY] TP Ask](#ANY-TP-Ask)\r\n* [[ANY] Wallclimb](#TF2-Wallclimb)\r\n\r\n## [TF2] Additional Settings\r\n\r\nImplement additional convars for whatever.\r\n\r\nCurrently adds the following:\r\n* tf_backstabs 1 - Set to 0 to disable backstab crits\r\n* mp_instagib 0 - Set to 1 to enable 1-hit kills for everything\r\n\r\nThis plugin requires [TF2 attributes](https://github.com/FlaminSarge/tf2attributes) and [TF2 Utils](https://github.com/nosoop/SM-TFUtils/)\r\n\r\n## [TF2/MvM] AutoReady\r\nBasically a re-write of [avi9526's AutoReady](https://forums.alliedmods.net/showthread.php?t=223141).\r\nIf there are a hand full of players in your MvM server and one player is afk or something this plugin can auto ready them.\r\nProblem with the original plugins was the quite annoying chat spam, that will hopefully be gone with this revision.\r\n\r\nConVars are the same to allow for drop in replacement:    \r\n`mvm_autoready_threshold` - the amount of players that have to ready to force start the round    \r\n`mvm_autoready_percent` - the ratio of players (0.0 .. 1.0) that have to ready to force start the round    \r\nAdmin Command:    \r\n`sm_forceallready` - force all players into the ready state, starting the round. Requires the cheat admin flag.\r\n\r\n## [TF2] FartCombat\r\nToilet humor haha. This is a gameplay plugin. Medic farts heal, yes. Soundfiles not included.\r\n\r\nConVars are:   \r\n`mp_fartcombat` - turn farts on   \r\n`mp_fartnoguns` - default 1, set 0 to allow weapons   \r\n`mp_fartdamage` - defautt 100\r\n\r\n## [ANY] Map Props\r\nAllows server mods to spawn and manipulate and save props using an array of commands.\r\n\r\nIn order for props to save, add this block to your databases.cfg\r\n```\r\n\t\"MapProps\"\r\n\t{\r\n\t\t\"driver\" \"sqlite\"\r\n\t\t\"database\" \"mapprops\"\r\n\t}\r\n```\r\n\r\nCommands are as follows (These have the permission ADMFLAG_GENERIC):\r\n* sm_spawnprop \u0026lt;model\u003e - spawns a static model\r\n* sm_spawnphys \u0026lt;model\u003e - spawns a physics model\r\n* sm_deleteprop [ref] - deletes the ref or aimed prop\r\n* sm_freezeprop [ref] - freezes the ref or aimed physics prop\r\n* sm_unfreezeprop [ref] - unfreezes the ref or aimed physics prop\r\n* sm_saveprop [ref] - add or update prop in database\r\n* sm_removeprop [ref] - remove prop from database\r\n* sm_propowner [ref] - shows who spawned the ref or aimed prop, if spawned with sm_spawn*\r\n* sm_propmodel [ref] - returns the model path for the ref or aimed prop\r\n* sm_colorprop \u0026lt;r\u003e \u0026lt;g\u003e \u0026lt;b\u003e [a] - colors a prop. r, g, b go from 0 to 255, a is optional with a min of 50\r\n* sm_skinprop \u0026lt;skin\u003e - skin number from 0 to an arbitrary value, usually no higher than 15\r\n\r\n## [ANY] Name Checker\r\nSmall plugin that tracks player name changes and compares the new names agains other names using N-Grams. Bi-Grams to be more specific.\r\nThis allows to calculate a similarity score in % instead of a \"is-equal-or-not\" by taking the number of common letter pairs over the number of unique letter pairs as fraction.\r\nWhen the threashold in `sv_max_name_similarity` is exceeded, SourceBans is used to give a session silence.\r\n\r\nThis is intended to minimize the impact of name stealers spouting horrendous stuff in voice and text chat. If you renamed everyone the same as staff, you can use\r\n`/freename` to remove the silence from any player that is currently tracked as name-changer.\r\n\r\nYou can also target `@namechanger` or `@deceivers` to punish these players, or use `@!namechanger` or `@!deceivers` to target everyone else.\r\n\r\n## [TF2] QuickTrack\r\nAllows servermods to quickly set up race tracks around maps with checkpoints, similar to bhop/surf timers.\r\nThe setup is done entirely through VGUI menus and player positioning.\r\nCheckpoints within a track have to be visited in sequence for the attempt to progress, best times get a shoutout.\r\n\r\nSaving tracks will write all open tracks with zones into a config file in tf/cfg/tracks/ named after the map.\r\nThe file is reloaded at map start, but can manually be reloaded at any point.\r\n\r\nCommands:\r\n* sm_edittrack [track] - Open the track editor for the track (ADMFLAG_GENERIC)\r\n* sm_tracktop [track] - Open the top-scores for the current track, or the specified track\r\n* sm_stoptrack - End the track a player is currently on\r\n\r\n## [TF2] RaidBlocker\r\nCollects clients spamming callvote kick and/or sm_votekick. Written for TF2, might work in other games idk\u0026idc.\r\nConfigure using defines in the .sp.\r\n\r\nYou can target `@botraid` for players calling to many votes joining at the same time, or enable auto ban\r\nfor anything that spams vote kicks.\r\n\r\n## [ANY] SlapAndBury\r\nThree command for admins with the SLAY flag:\r\n* sm_bury \u003ctarget\u003e ['hard'] / sm_unbury \u003ctarget\u003e - force players stuck into the ground. If hard, they can't killbind.\r\n* sm_rslap \u003ctarget\u003e [repeats] [delay] [damage] - use this instead of spamming your sm_slap bind or mashing up,enter in console\r\n\r\n## [ANY] SmartEdictOverflow\r\nA plugin that tries to keep your server alive just a little bit longer before it has to reset the map (or whatever you low edict action is).\r\nAmout the limit: SEOP tries to be smart and counts edicts at the start of the map for a dynamic limit. If you specify a limit smaller than\r\nthe dynamic limit, it will pick the dynamic limit over your value to ensure gameplay is possible. If you still run into the edict limit at\r\nthat point, you probably got other problems. For this reason SEOP also does not really support reloading (the initial edict count will be off).\r\n\r\nConVars:\r\n* `seop_edictlimit 2000` - When to start acting\r\n* `seop_edictaction 2` - What to do over the limit: 0 = block spawning new stuff, 1 = try to delete old stuff, 2 = both\r\n* `seop_edictlimitwarn 1950` - Start warning people when more that this amount of edicts is around (+overlay)\r\n* `seop_edictlimitwarn_hudflags *` - Admin flag required to see get the overlay showed automatically (over warn limit)\r\n* `seop_edictsperplayer 11` - How many edicts to guesstimate for every player in the dynamic limit\r\n\r\nCommands:\r\n* `seop_info` - Dump some stats into the console\r\n* `seop_track` - Manually toggle the info overlay\r\n\r\n## [TF2] Spec Ghost\r\n\r\nSpectators are small team-colored ghosts. Use `/voicemenu` as ghost to communicate.\r\nThe convar `specghost_voicemenu_enabled` controls availibility of the `/voicemenu` command.\r\nThe use the override `specghost_usebuttons` to allow ghosts to +use buttons (default ADMFLAG_GENERIC).\r\n\r\n## [ANY] Staff RCon\r\nUtility to lock down RCon requests even harder using the smrcon extension. SteamWorks is used to automatically whitelist the servers own IPaddr.\r\nThis currently has no config, and was not extensively tested, thus it is not part of the build!\r\nRCon requests from IP addresses that are not whitelisted require a staff member with sm_rcon access to be ingame from the same IP at the same time.\r\nThe RCon password is still required.\r\n\r\n## [TF2] TDM Tickets\r\nA small plugin for TF2 servers that implements a battlefield like ticket system for team deathmatch.\r\nIt abuses mp_tournament mode to display tickets as team names *without* actually displaying any team ready popups during WFP.\r\nExpect things to break if you have any other plugins that use tournament mode in any way.\r\nFor those that are not familiar: Spawning with this plugin requires a ticket, and once your team runs out of tickets, you loose the round.\r\n\r\nThere is really only one ConVar:\r\n`sm_tdm_tickets` - set the amount of tickets each team has.\r\n\r\n## [ANY] TP Ask\r\nBring a teleport request system similar to Minecrafts `/tpa`-Commands to the Source Engine.\r\nAs this plugins was designed as a VIP-Feature, it's commands require ADMFLAG_GENERIC by default, the command group is \"tpask\".\r\n\r\nPlayers can request to teleport to other players, or ask other players to teleport to them using `/tpa` (or `/tpask`) and `/tpahere` (or `/tpaskhere`) respectively.\r\nIf no player is specified as command argument, a pick-player menu will open.\r\n\r\nAsking a player will prompt them to `/tpaccept` or `/tpdeny` the request. If they are not interested they can also `/tptoggle` receiving any teleport requests.\r\n\r\nAfter a teleport was accepted there's a warmup of `sm_tpa_warmup` seconds for the teleporting player. If they move of get hurt during this warmup, the teleport is interruped.\r\nOtherwise the teleport takes place and the player is on a cooldown of `sm_tpa_cooldown` seconds before being able to teleport again. The config is written to `cfg/sourcemod/plugin.tpask.cfg`.\r\n\r\n## [TF2] Train-Streak\r\nMight already exist, couldn't find it, rewrote it. Gives environmental vehicles (usually trains in TF2) kills a killstreak. Oh and saw blades.\r\n\r\n## [TF2] Wallclimb\r\nReimplementation of VSH wallclimb taken from VScript (original by LizardOfOz). Voice lines not included. Hit a wall and go!\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fsm-miscplugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdosmike%2Fsm-miscplugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fsm-miscplugins/lists"}