Introduction

SWAT 4: The Stetchkov Syndicate is a fantastic, albeit flawed game. I have played this game for many years in co-op and have always been irritated at all of the bugs and glitches present. Originally, my project was going to be focused on making the game into a simple mod to make the game more realistic and maybe become used by police officers for training. Instead, this became one of the largest, if not the largest, and most expansive mod for SWAT 4.

Features

The following is a non-exhaustive list of features. There are plenty more, but you can take a look at the README file for a full list.

  • Over 40 new pieces of equipment, including equipment cut from the original game, suppressed versions of the original weapons, grenade and wedge 3-packs, and new equipment entirely. There's more than twice as many types of ammo from the original game. Weapons are categorized by family (Assault Rifles, Submachine Guns, etc) in the interface, so as to be easy to select.
  • ...and it's more realistic equipment, too. Less lethal equipment is truly less lethal, not non-lethal. Tasers can kill the elderly and drug users, or those in poor health. Beanbags can break bones and fatally injure at close range. Bullets can realistically ricochet off of surfaces. Ceramic-plate armor breaks and degrades as more bullet holes punch into it. Lightsticks can be tossed across the room, or simply dropped at your feet, much like SWAT 3. Everything you pack contributes to Weight and Bulk. Weight, how heavy your equipment is, reduces your movement speed. Bulk, how large your equipment is, reduces your interaction, weapon changing, and reload speeds. Too much stuff, and you won't be able to play.
  • The original SWAT 4 and Stetchkov Syndicate campaigns, combined into one. There is a refined unlocks system, designed to make the campaign more enjoyable to play.
  • A second campaign. The new Extra Missions campaign will be adding cut missions, newly created missions, and curated custom levels with scripted encounters, new blueprints, and custom voice acting.
  • All Missions Campaign. In an All Missions campaign, you can load all of the missions from your hard drive (including custom missions) and play them through in singleplayer, with the AI.
  • Permadeath Modes. When creating a campaign, you can turn on Permadeath for either yourself or your squad members. With AI Permadeath, when your squad members become incapacitated, they are out of the fight for good. With Player Permadeath, if you die, your campaign is over.
  • Campaign CO-OP. Help your friends complete their campaign. As you complete missions together, more equipment becomes unlocked, just like in singleplayer.
  • Ironsights. Hitting the Zoom key will switch to fully 3D ironsights for improved accuracy. This feature can be disabled however, for the original game's zoom function. (Weapons with a scope will use that instead of ironsights)
  • Overhauled AI. The officer AI is much more deadly and efficient now. There are a number of new commands that can be issued to them, including Leader Throw and Clear, which allows you to be the one to throw the grenade of your choice. Or Search and Secure, which orders the officers to restrain civilians and collect evidence in an area around the player. Civilians restrained by officers are reported to TOC. Suspects have been altered too and given distinct personalities. Insane suspects for example will shoot at hostages without hesitation. Suspects may shoot at the player while fleeing from them. Lastly, hostages have been altered too, and may choose to give up easier when witnessing someone else become tased or pepper-sprayed.
  • Order your squad through your voice. A cut feature from the game, you can order your AI squad members using an attached microphone and the Microsoft Speech Recognition API. Instead of navigating an interface to find the breaching command you want, just say "Breach, Bang, and Clear."
  • Altered door mechanics. Doors can be breached with any shotgun, however the effectiveness depends upon which shotgun is taken (the M870 Breaching will always breach 100% of the time) and what ammo is taken. Broken doors can be closed, and wedged. Doors can be locked by the player by using the toolkit on the doorknob. Doors can be checked if they're locked using the melee key. Some doors may have traps on them, which may force you to take alternate routes.
  • Side Objectives. Some levels may have drug evidence on them, which may be collected for additional points. On some levels, incapacitated civilians may bleed out and die, which may penalize your score slightly.
  • Multiplayer Improvements. There is a totally overhauled and deep admin system, with more than just a simple administrator password. Chatting now displays the name of the room that the message was given in. Snipers work in multiplayer and can be controlled to shoot by the leader of a team. There is now a "Not Ready" button which makes you unready. There are new types of votes that can be held, and at the end of a round, the menu will display the next map name.
  • Quality of Life changes. You can now change your FOV with an FOV slider. Mission dispatches can be disabled. Most modern resolutions are supported without bugs. The crosshairs can be disabled. Whenever anything important occurs, like a penalty or an objective completion, the player is notified of it. Your stats in singleplayer are tracked and visible from the Campaign screen. Maps on the Host Game menu can be filtered. There are simply too many minor things to list here.
  • Bugs fixed. Over 100 lines of dialogue which never played in the original game due to bugs or missing content have been restored. And that's just the tip of the iceberg. Most of the bugs that were fixed were from the expansion, which was quickly rushed out the door.




  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Status Update

News 12 comments

Update on v7

I've been receiving countless emails and private messages wondering what happened to v7 and where it's at. The good news is that v7 is almost finished - in fact I have one bug left to resolve and I can consider it in a release-able state (although I might cram some more polish into it). It is possible to test a beta version of V7 by going onto our Discord server, where a pinned message in #sef-general has a download link.

The bad news is that the one bug is quite convoluted to test and puzzling to fix. This is on top of my work with VOID Interactive on Ready or Not, which is quite demanding indeed - I work the equivalent of a fulltime job in game development (which as some of you may know, can be quite demanding as it is), whereas before I was working on my Bachelor's (I graduated in May). Fortunately I've had some help from a few notable people who have contributed artwork and number-crunching to the mod, and even some code. Because of their efforts, we will be including Brettzie's M4A1 and the FN FAL!

Background to the bug

One of the principal new features in v7 is the ability to share equipment between teammates. In singleplayer, you are able to command your squadmates to give you a piece of equipment, via a command such as REQUEST FLASHBANG. You can also give your AI teammates a piece of equipment by pressing the melee key on them while holding a relevant piece of equipment. Although you can bind Melee/Check Lock/Give Item separately if you wish, this just leads to less keys needing to be bound. This is working as expected, and although I had to work around a lot of the native loadout code, it wasn't too bad to implement.

The real trouble is with implementing this feature in CO-OP.

When an officer spawns into the game, they have a fixed set of equipment represented by a static array. That is, there are precisely 23 pockets of equipment that are spawned, and we cannot add any more pieces of equipment. The code looks something like this:

var(DEBUG) protected Actor PocketEquipment[Pocket.EnumCount];

This is pretty bad, because we can't add any additional pieces of equipment on a whim. For example, if we want to give someone a piece of equipment, where would it go? We would need to rewrite the entire way that loadouts are represented to make it happen. Expanding the number of pockets or adding another array of given equipment won't work because of the concept of native classes. Native classes cannot have their size differ from a fixed number that is defined in the engine. That is, we cannot alter the number of variables in the loadout. We have to work within the constrained space. If we don't, the game will crash, notifying us that the native class size doesn't match the Unrealscript class size.

This isn't a problem that's exclusive to the Loadout class either - in fact, 40% of SWAT 4's code are native classes that we can't modify the size of. It ranges from basic stuff such as the player itself, to very specific things such as the Optiwand and the Night Vision goggles.

So, what solution did I employ to fix this? Well, the native classes need to fit within a certain number of bytes. So, if we can somehow take the same space and extract more value out of it, we should be good to go.

The key here is that PocketEquipment has a fixed size associated with it - it is an array of 23 Actors (an Actor is anything that is spawned in the world, such as players, items, suspects, ...). But, if we were to remove the size constraint on PocketEquipment, the size actually goes down - by a lot. In fact, we can fit 23 unconstrained arrays in that one array space. Thus, if we change the above section of code to read as follows:

var(DEBUG) protected array<Actor> PocketEquipment;
var(DEBUG) protected array<Actor> GivenEquipment;

var int unused[21];

We use exactly the same amount of space as before, and even have some leftover space to work with. The first array is the equipment that we spawned in with, and the second array is the equipment that we were given from other players. A side benefit of this is that we can now have as many pockets as we want without breaking the game, so things such as gun attachments, weapon skins, and so on could all be possible in the loadout.

However, this causes a number of different chain reactions of breakage in the engine, and it's a matter of finding each cause and neutralizing it. You see, this is Unrealscript code, but on top of these native classes specifically, there is C++ code running (which Irrational has never given us the source code to), and while I can make an attempt to reverse engineer the engine and prevent some of that C++ code from running, it's always going to be a problem.

Particularly, this is a problem with replication - that is, reproducing (replicating) stuff which has occurred in the server's eyes to the client's eyes. In a multiplayer, dedicated server environment, when we give a piece of equipment to another player, we as a client in a multiplayer game aren't actually doing anything - we are telling the server "hey, I want to give my flashbang to the guy in front of me, can you make it happen?" Replication is an extremely complicated subject, and I'm not going to describe it in very great detail here, but it's related to the bug.

Fun fact: I spent about a month fixing the replication for traps and snipers in CO-OP. It was not a fun month.

Instead of straight-up changing the ownership of the item that we are holding, the server takes away one "count" of the item, and either gives another "count" of the item to the other player (if they already have one of those items - you're giving a flashbang to someone who either has one in their possession or they have used one previously), or it spawns a new item and places it in their GivenEquipment in their loadout. That's a bit of a simplification though in the case of pepper spray and the optiwand, which are both "weapons" and not grenades/handheld equipment, but generally, that's how it works.

The Bug Itself

Right, so we have two cases: either you're giving an item to someone who already has one of those items or has at least used one in the past, or you're giving an item to someone who has never held one of those items before. The first case works fine actually, and we can see in the current beta's CO-OP that if we pass a flashbang back and forth between two players who have one in their kit, it works perfectly, although it doesn't notify the player if they can't equip a flashbang because they've given it away, but that's a separate bug entirely.

The other case...doesn't work at all. If we have an optiwand and our teammate doesn't, when we try to give an optiwand to them, it vanishes into the ether, and we cannot ever get that optiwand back. To test out why this occurs, I had to install a virtual machine to run two different instances of SWAT4, and also run a dedicated server as well. And of course, because SWAT 4's version of Unrealscript is highly specialized, I don't have access to a debugger at all, and instead I have to print everything to the log instead of being able to set breakpoints and see the value of variables at real time. But after a lot of test where I recompiled the code over and over again to see why stuff wasn't working, the reason it happens is actually quite straightforward: the client doesn't see the newly spawned optiwand. It's not replicated. The client doesn't think it has spawned. It's "None" to them.

Why does this happen? Well, I have no idea actually. Even if I force the spawned item as being always relevant (and therefore *always* replicating to other clients), the client has no idea that this item is ever existing. I've heard it suggested that clients need a few ticks for the spawned item to be replicated, but it never happens. In fact, looking through the replication logs, it tries to replicate from server to client, but the client doesn't accept the spawned item for some reason or another.

Conclusion

So, if there's some Unrealscript wizards on this website or that people know of that have an idea how to fix it, that's kind of what I'm holding out for. You can kind of see my last attempt at fixing the issue here, but all it was able to do was prove that the newly spawned item never replicates. I might have to figure out some other kind of strategy to make giving items possible. As an ultimate cop-out, I could disable the Give feature while in CO-OP, but I really wouldn't want to do this - Sharing is a big part of the update, and it almost seems more important in multiplayer than in singleplayer.

That's where v7 is at. Hopefully that quells some of the concerns over whether or not v7 is getting released. ;)

I now work for Void Interactive.

I now work for Void Interactive.

News 36 comments

I will be working with Void Interactive on their new game, Ready or Not. We will be hosting a Reddit AMA on June 13th. Also, some important information...

Alpha Testing v7

Alpha Testing v7

News 22 comments

We have begun testing the next major iteration, v7.

Official Servers!

Official Servers!

News 20 comments

We've reached our Patreon goal and SWAT: Elite Force official servers are here!

Elite Force 2018

Elite Force 2018

News 15 comments

A look into the past and the future of the mod, for the new year.

Add file RSS Files
SWAT: Elite Force v6x -> v6.4 Upgrade

SWAT: Elite Force v6x -> v6.4 Upgrade

Patch 83 comments

Use this to upgrade a v6 (or higher) installation to the latest patch, v6.4.

SWAT: Elite Force v5x -> v6 Upgrade.

SWAT: Elite Force v5x -> v6 Upgrade.

Patch 9 comments

Use this to convert an older version of the mod (v5, v5.1, v5.2, or v5.3) to the latest base version, v6.

SWAT: Elite Force v6

SWAT: Elite Force v6

Full Version 20 comments

The latest base version of SWAT: Elite Force. Use this if you are installing the mod for the first time.

SWAT: Elite Force v6x -> v6.3 Upgrade

SWAT: Elite Force v6x -> v6.3 Upgrade

Patch 7 comments

This is an outdated patch. Please use the latest patch.

SWAT: Elite Force v6x -> v6.2 Upgrade

SWAT: Elite Force v6x -> v6.2 Upgrade

Patch 4 comments

This is an outdated patch. Please use the latest patch.

SWAT: Elite Force v6 -> v6.1 Upgrade

SWAT: Elite Force v6 -> v6.1 Upgrade

Patch 10 comments

This is an outdated patch. Please use the latest patch.

Comments  (0 - 10 of 1,437)
Killerx20
Killerx20

Hey I love this mod, it adds so many needed features to this game and brings it to current gen IMO. I'm curious though, I'm using v7 of this mod and is there any way to have AI companions when you play CO-OP with somebody? If not, is it going to be a feature at a future date? It would be really cool for me and my CO-OP player to have our own AI teammate to control.

Reply Good karma Bad karma+1 vote
mohamedfouda2006
mohamedfouda2006

I'm really happy you fixed the bugs eez but I've been considering a silly question on you and it's kind of dumb...can you finish the last version of elite force by adding a door ram or a new breaching tool or ability to kick doors?
I'm not really certain about what you can do but when i saw your astonishing progress in the Beta Version 2 i felt like i must consider saying this question that's all. i hope you and void interactive Finish Ron.
Best Wishes,Mohammed Fouda

Reply Good karma Bad karma+1 vote
Guest
Guest

This comment is currently awaiting admin approval, join now to view.

vbm1985
vbm1985

I cannot register on Discord, please someone share the latest beta of 7! pls\pls\pls

Reply Good karma Bad karma+1 vote
meow81
meow81

wait for full game

Reply Good karma Bad karma+1 vote
FrainFreezed
FrainFreezed

I just saw P90 and other special weapons in video but I install it and nothing inside.. Why?

Reply Good karma Bad karma+1 vote
yehudi71
yehudi71

Did you launch the game with the LaunchSEF.bat file?

Reply Good karma Bad karma+1 vote
Guest
Guest

When FOV is over say 85 or 90 you can see the buttstock of the SMG go see through, like it's not designed for higher fov's. Any way to fix this?

Reply Good karma Bad karma+1 vote
TheGman96
TheGman96

Damn, I hope you can fix the bug, I love this mod. Good luck!

Reply Good karma Bad karma+3 votes
Warhead77777
Warhead77777

Will this mod increase the chances that SWAT 4 won't crash, for no reason, and with such intensity that the whole computer freezes till it's shut down?

Reply Good karma Bad karma+2 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Icon
SWAT 4: The Stetchkov Syndicate
Creator
Contact
Send Message
Release date
Mod watch
Follow
Share
Community Rating

Average

9.6

105 votes submitted.

You Say

-

Ratings closed.

Highest Rated (7 agree) 10/10

Nice features. traps and stuff. it makes swat 4 harder.

Sep 3 2016 by havatan10

Style
Embed Buttons
Link to SWAT: Elite Force by selecting a button and using the embed code provided more...
SWAT: Elite Force
Statistics
Last Update
Watchers
518 members
Addons
11
Files
22
Articles
32
Reviews
97