Since we started this blog we have been trying to point out that one of the things we (as a group) felt was an issue in CS:GO was the fact that most servers kept their stuff for themselves without sharing a tiny bit. Although it isn’t bad per se, communities seemed to participate in a ridiculous bragging contest that lead to nothing but to a situation where nobody helped eachother. Some of us firmly believe that this attitude was, probably, the cause for a knockback fix taking so long to appear. A bit of this general way of doing things remains, and although we know we can’t change it we would like to at least add our tiny bit (not only for ZE but for custom gamemodes in general).
On these grounds we have been working on a small set of plugins that we believe could be helpful in general. They address issues that have been around for long (although not as many as we would wish to cover), and should be decent enough to be helpful for server admins and enjoyed by players. Some of them were thought in a bit of a greedy manner so to speak, giving tools for mappers (and developers overall) to pinpoint issues in what they produce.
The plugin pack will be published here, and we think it should be seen as a beta work in progress. We’re probably not going to upload it to the official Sourcemod’s forum on AlliedModders, but we have no problem with the plugins being posted either as a pack together or separately. We don’t care about you posting them as your own work since people that act that way are surely not people to care about. The only thing we do demand is that the plugins are distributed for free since one of the reasons behind them was the amount of SM coders that would ask for what, in our eyes, were absurd amounts of money for relatively simple plugins.
Although some of us might have had a humble SourcePawn background, we’re obviously (and as seen after the release of the first map pack) as prone to error as any other human being is. We’d appreciate if you could pinpoint issues and suggest changes so that in the end more people can enjoy themselves playing.
And now, without more obnoxious wordathons, we’ll describe each plugin and its cvars and commands so that everything’s clear.
(Also, the names of the plugins, their authors and their descriptions are a bit of a joke. You’re free to change them)
burn_slowdown.sp : One of the big issues in CS:GO’s zombie gamemodes is that the classic napalm nades don’t slow the zombies down. Some of us believe this is actually good because it means that different alternatives might appear and make the gamemode evolve, but despite our personal thoughts we’re aware that some servers might prefer it. This plugin makes players get slowed down by means of stamina when they are hurt by fire attached to them (that is, when they’re burning). This means that this plugin will be completely compatible with Z:R’s napalm on classes, and the slowdown will not affect the players’ jumping (as it happens with speed-multiplier based fixes). There will not be problems with maps where a velocity multiplier is set, since stamina is completely independent from it.
- sm_stamina_burncost [DEFAULT : 25.0] – Stamina penalty to be applied when you’re burnt.
- sm_napalmonly [DEFAULT : 1] – Whether or not to apply stamina penalty on all kinds of burn damage types. It can make you slowdown on certain maps with env_fire so perhaps it’s not the best idea (since the fix isn’t Z:R specific and humans would be affected too).
colorshit.sp : Although players who have been in CS:GO since the beta might be accustomed to it, the chat colors in the game are not really helpful for map console messages. It might sound trivial, but being able to easily see what the map hints and displays as important can greatly help players do well on maps. This plugin lets you tint console messages with the several colors CS:GO has built in.
- console_chat_color [DEFAULT : 9] – Color to be used. The default is a pale yellow to mimick the yellow console in CS:S, but given that CS:GO’s lighting usually comes yellowish from the post processing + usual mapper choices, it’d be a good idea to mess around with this.
CSGOJoinTeamFix.sp : CS:GO has the bad habit of blocking people from going back into a team after going into the spectator team. Since rounds on zombie escape servers are long and at times you spectate and then want to go back (playing as a zombie), we made this plugin. It forces the server to let you change your team so you don’t end up being annoyed (
but Z:R command blocking should still block your suicide attempts before hand we’re wrong, use at your own discretion). We are not sure, but perhaps there is a cvar that aids on this matter, so we would be grateful if we were told if such a thing exists.
EDIT + NOTE: The plugin makes use of ‘ChangeClientTeam(client, desiredteam);’. Perhaps using a FakeClientCommand(client, “jointeam %d 1”, team) would be better. Use this at your own discretion, we don’t think it’s that big of an issue for most servers either way.
devdisplay.sp : This is one of our favorite plugins as mappers. It lets you dump a bunch of interesting information, both useful for mappers and server admins. The original idea behind it is Kyle Sanderson’s rdisplay, which you can find on the AlliedModders forums for CS:S (sadly hudhints in CS:GO won’t let us display as much text as we’d like to). It is registered as an admin command so you can change the flags for it, but we’d recommend leaving it public (since we might want to use it in your server at any point in time.)
easy_spec_r.sp : Another rather helpful command for us, this one lets you spectate a given player by its name. It’s particularly useful when a player asks you to see something (be it a bug, a secret or just to see him doing good/bad/trolling). In the same vein as devdisplay, it is an admin command so you can set its access level, but we’d ask you to consider leaving it unrestricted.
- easy_spec_enable [DEFAULT : 1] – Enables or disables the plugin. Useful for mixed servers that catter for both barricade and escape gamemodes, since they might not want ghosting in zm maps.
Note: comes with translation support. Feel free to send us your translations via the comments section and we’ll be glad to add them. Right now english and spanish are the two supported languages.
grenadeboost.sp : Remember when, above, we stated that some of us thought alternatives to napalm grenades could exist? This is one of our proposals; one that seems to do fairly well for what it is. This plugin makes HE grenades have vertical knockback only, sending zombies upwards when they’re hit by a grenade. It makes failnades happen less while still slowing zombies down but without causing a huge fps drop form the burning particle effects. Of course, Z:R grenade knockback is expected to be set to zero although low values for it might be interesting too.
- zr_vertical_nade_kb [DEFAULT : 7.0 ] – Amount of vertical knockback to apply by multiplying it with the damage dealt when hurt by a grenade.
inf_knockback_hook.sp : One of the things that nobody seems to have addressed properly in Z:R’s code (or perhaps nobody noticed?) is that both molotov and incendiary grenades damage you by means of another entity whose classname is ‘inferno’. Because of that, those weapons happen to have no knockback at all and they become rather stupid to have on your server (despite being, alongside with HE grenades, the most logical weapons to use by their looks and effects). This plugin will let you have knockback coming from these inferno entities that push zombies outwards of the fire’s center. It will also let you decide whether you want them to push upwards or not (that is, have knockback as an sphere or as a circle/cylinder).
- zr_inferno_novertical [DEFAULT : 1 ] – Whether to allow vertical knockback on inferno-based damage or not.
- zr_inferno_knockscale [DEFAULT: 112.0 ] – Amount of knockback to apply on these inferno entities. Perhaps a bit high by default, so toy around with it.
inf_slowdown.sp : Similar to the previous plugin, this one makes inferno-based damage to slowdown. The slowdown is performed with stamina as in the burn slowdown plugin, so the result will not affect either maps nor other plugins.
- zr_inferno_slowdown [DEFAULT : 40.0] – Amount of stamina penalty to apply when being slowed down by inferno damage.
invisible_knife.sp : Based off a similar plugin from CS:S, this plugin will let servers have zombies that don’t go around waving their knives. Instead of getting mugged by gangsta zombies we will get infected by actual zombies with nothing else but their blood drenched claws.
map_content_downloader.sp : Although we’re unsure about it being necessary, this plugins lets clients download radar files and loading images from the server so that they have those locally and can see them while joining. While porting we’ve tried to pack everything and also provide the loading screen image at the very least in hopes that Valve would eventually change things around, but for now it seems that this plugin will be good enough. We will appreciate, of course, information about whether it is actually necessary or not, since we’re pretty clueless.
nightvision.sp : Although a bit annoying at times, nightvision is a key component for darker maps or servers with a more survival-oriented theme. Since a fairly recent update, nightvision has been in the game but it can’t be obtained by common means. This plugin provides several commands to toggle nightvision and also lets you restrict its usage on zombies.
- zr_zombie_allow_nightvision [DEFAULT : 1] – Defines whether zombies will be able to use nightvision.
- zr_EmitSoundToAll [DEFAULT : 1] – Defines whether other players will be hear your clicks and beeps when you enable your nightvision.
Commands: sm_nv, sm_nvg, sm_nightvision, sm_nvision, sm_vn (they all do the same, toggle nightvision).
spawn_unlag.sp : Perhaps too much of a name, but it is probably the one that suits it the most. One issue some servers might have in maps with cluttered/small spawn areas is that weapons being dropped cause sheer amounts of lag. At times, when a server is full, the lag can take painfully long before getting back on track. The cause behind it, or at least one of them, is the great amount of weapons being bought making the server have to do a bit of its physics homework. This plugin lets you remove weapons dropped by players provided that they have no children (so maps’ special items remain unaffected) nor a targetname (since they might be in a non-parenting hierarchy with logic_measure_movement). You can define the amount of time you want the plugin to clean weapons too, for if you don’t really trust it working flawlessly.
- sm_weaponcleaner_timer [DEFAULT : 15.0] – Time to spend cleaning up weapons after the round starts.
Note: It might be good to pair it up with mp_t_default_secondary “” and mp_ct_default_secondary “” so that the server load is reduced by in-built means too.
And that’s it. You can download the plugins in the following links:
We’d also hope that you’d get in touch with us in case something went wrong. The plugins have been tested more or less and they should work, but we’re sure issues will arise since they always do.
Soon, hopefully, we will be doing another post with something that makes us very happy to have managed to get working. After that, we believe that we will post the map fix pack patching the issues that have been reported to us (and we will attempt to fix the seemingly (?) server-specific issues reported by fur10usd and Jargon, if you happen to experience similar issues as the ones depicted here please try to tell us the maps in which it happens and when) . Until then, enjoy playing!