eezstreet / SWATEliteForce

A modification for SWAT 4: The Stetchkov Syndicate
GNU General Public License v2.0
213 stars 36 forks source link

INTRODUCTION

SWAT 4 is a fantastic, if horrendously bugged product. I've spent countless hours playing the game, mostly in CO-OP on servers new and old, and there always seemed to be a glimmer of potential that has never been truly realized by games that followed it.

The best way to explain SWAT: Elite Force in short is a complete overhaul of the original game. The broken AI is fixed, cut content has been restored, and every weapon is precisely calibrated to its real world counterpart. The main campaign, a combination of the vanilla game and The Stetchkov Syndicate, has a carefully crafted unlock system that you can play through with a friend to complete. If that isn't what you'd prefer, there's also an All Missions campaign which allows you to play through any mission, including custom ones on the hard drive, with any equipment in the game, including some which is multiplayer sepcific. Even after you've completed the campaign, there's various flavors of permadeath to tackle...if you think you're Elite enough...

The gameplay itself has been drastically changed. You can now aim down the sights, and there are now traps to disarm. Doors can have their lock checked with the melee key. Suspects can employ a wide variety of personality types, from your usual, sideways-shooting crook to insane domestic terrorists which murder civilians at whim to heavily armored thugs with light machine guns. Your team is much, much smarter too, and with the restored Speech Recognition feature, you can even order them around with an attached microphone. You'll need the extra speed too, because incapacitated civilians that spawn around the map will die if you aren't quick enough, which will impact your score. The command system has been vastly improved with a new LEADER THROW set of commands that let you be the one to throw the grenade, and SEARCH AND SECURE, which orders your officers to restrain all compliant hostages/suspects and secure all evidence in range. After restraining a suspect or hostage, your team will also report it to TOC.

The equipment system is incredibly robust. There's over 40 pieces of new equipment, some of which was cut from the original game. You'll need to manage your team's weight and bulk. Too much equipment, and an officer will become too overencumbered. By carrying less weight, you and your officers will move faster, and by carrying less bulk, you and your officers will interact with things faster. In singleplayer, you can also pick your team's helmet and body armor, which protect you similar to how they did in multiplayer. The breaching tab has been removed - instead, there are now six tactical slots and the breaching equipment is available as other equipment. There's twice as many ammo options as in the original game, and the choices matter, since new factors like drag (how much momentum the bullet loses over distance) and ricochet potential (how likely a bullet is to bounce off a surface) vary. Grenades and wedges come in 3-packs, at the cost of consuming more weight and bulk. Less lethal equipment is truly less lethal, since tasers may incapacitate or even kill the elderly, those in poor health, or drug users, and beanbags, stingers and flashbangs can be hazardous at close range.

The game is much more approachable as well, with a cleaned up user interface which functions well on modern widescreen resolutions. There's also an FOV slider and a mouse smoothing checkbox, preventing you from having to tinker with game files to accomplish the same thing. Perhaps most importantly, the game actually warns you when you've encountered a penalty.

Initially, I envisioned SWAT: Elite Force as a tactical simulator that could be used to train police officers in a similar vein to Canadian Forces: Direct Action. After peeking at the games files however, I uncovered a wealth of unused content and decided to contact the original developers about the game. Over time, the game became a much larger, insane overhaul. It's been called the best way to play the game by most people, and I'm proud of that. Perhaps you'll find it to be the same.

--eezstreet

TABLE OF CONTENTS

  1. How to Install
  2. Building from Source
    • Contributing to the mod
  3. Changes, Summarized
  4. Frequently Asked Questions (FAQ)
  5. Mod Compatibility
  6. Known Issues
  7. Other Minor Changes
    • TSS Bugs Fixed
    • AI
    • Gameplay
    • GUI
    • Equipment
    • Quick Mission Maker
    • Mission Changes
  8. How to play in Multiplayer
  9. Credits
  10. License

HOW TO INSTALL

Copy the folder containing this folder (SEF) into your SWAT 4 directory (the one containing Content and ContentExpansion). For the CD copy of the game, this folder is located in C:/Program Files (x86)/SWAT 4 or C:/Program Files (x86)/Sierra/SWAT 4 For the GOG version of the game, it's usually located in C:/GOG Games/SWAT 4

!!! CAUTION !!! Do not extract the SEF folder into your Content or ContentExpansion folders (and therefore overwrite things), otherwise the mod will not work correctly.

To run the game, use the "Launch SEFMod.bat" file. To run SWATEd, use the "Launch SwatEd.bat" file. You can make a shortcut to these .bat files for more convenience.

The mod can be removed by deleting the SEF folder from your hard drive.

NOTE: You may run into an issue with the game not saving your settings, or throwing an assertion failure at times in the Settings menu. This is mostly a problem with Windows Vista and up; try giving the folder write permissions or "Total Control". Alternatively you can make your SWAT4x.exe run in administrator mode.

BUILDING FROM SOURCE

ATTENTION! You cannot run the game without having the content. You can find the content for the mod here.

If you are instead trying to build the source code, it is fairly straightforward.

The mod's code is primarily written in UnrealScript. You can find a good resource about UnrealScript here. (Note, if you can't access this page, try using the Wayback Machine to access it.)

Contributing to the mod

The best and most direct way to contribute to the mod's programming is by issuing a pull request. Generally, pull requests are best done by forking the mod's code, committing and pushing to your fork, and then issuing a pull request from your repository. It is not the best idea to use GitHub directly for editing, since if you need to make many edits, it will spam email inboxes.

When it comes to code cleanliness, the code standards appear to have been different between the base Unreal engine, vanilla SWAT 4 and vanilla TSS. Specifically:

That being said, I would like to adhere to these standards as much as possible:

if(something) { // bad

if(something)
{ // good
var public bool bMyVariable;
var private bool bMyBadlyUsedVariable;

function bool GetMyBadlyUsedVariable()
{
    return bMyBadlyUsedVariable;
}

function SetMyBadlyUsedVariable(bool bNewValue)
{
    bMyBadlyUsedVariable = bNewValue;
}

Assets have to be sent to myself personally to integrate into the mod.

CHANGES, SUMMARIZED

The Stetchkov Syndicate and base game missions are compressed into one campaign. As in The Stetchkov Syndicate, some equipment will need to be unlocked.

New campaign options! Now you will have a good reason to create more than one campaign...

Suspects employ a greater variety of tactics. "Insane" suspects will shoot without hesitation at hostages. "Polite" ones on the other hand, won't make this a priority. Civilians behave more realistically.

Smarter Officer AI!

Traps. This is a huge cut feature from the game. Some doors may be trapped with bombs or alarms, and you'll need to adjust your approach to deal with it.

New secondary objectives.

More equipment options.

Equipment is also much more realistic.

Doors behave more realistically

Commands can be issued using your voice. To enable this feature, tick 'Use Speech Recognition' in the Audio Options.

Commands are easier to give with a new Graphic Command Interface with lots of submenus instead of a single long list.

Harsher penalties for tougher gameplay.

Important QOL (quality-of-life) and playability features that are essential to playing the game.

Overhauled Quick Mission Maker.

Multiplayer improvements!

FREQUENTLY ASKED QUESTIONS (FAQ)

CONTENTS

HOW DO I INSTALL THE MOD?

Please read the How to Install section of this README. :)

HOW DO I USE THE SPEECH RECOGNITION?

First, you will need to ensure that your operating system supports Speech Recognition. What you'll need is the Microsoft Speech Recognition API, which Microsoft no longer provides. There is a public download of it available here. If your system meets the requirements, the 'Use Speech Recognition' checkbox will be available. You can also bind a key to toggle the functionality ingame, which is good when you're speaking for a Let's Play, for example. A list of trigger words is provided, starting with Patch 5.1. See SpeechCommands.md for more information.

IF SPEECH RECOGNITION DOES NOT WORK (CHECKBOX GREYED OUT):

IF SPEECH RECOGNITION DOES NOT WORK (COMMAND NOT RECOGNIZED, OR MICROPHONE NOT WORKING)

WHAT'S THE DIFFERENCE BETWEEN "MARK WITH LIGHTSTICK" AND "DROP LIGHTSTICK"?

MARK WITH LIGHTSTICK orders the nearest officer to go to the location and drop a lightstick. DROP LIGHTSTICK orders the nearest officer to drop a lightstick at their feet.

HOW CAN I CHECK FOR TRAPS IN MULTIPLAYER?

Use the Optiwand, and aim up at the doorknob.

HOW CAN I PLAY IN MULTIPLAYER? ARE THERE ANY SERVERS?

Please read the How to Play in Multiplayer section of this README. :)

HOW CAN I REPORT A BUG?

The best, and preferred method is to post it directly on our GitHub issues page: https://github.com/eezstreet/SWATEliteForce/issues However, since doing so requires a GitHub account, it's not the most desirable option. You can also post on the Moddb page, which doesn't require an account. Additionally, you can check us out on Discord, and chat with the developers: https://discord.gg/RfujTnF

WHY CAN'T I PLAY IN BARRICADED SUSPECTS, VIP ESCORT, SMASH AND GRAB, OR RAPID DEPLOYMENT?

This mod uses very realistic values for the weapons, and ultimately it doesn't play well in PvP modes for those reasons. Personally I would recommend playing these PvP modes on the original SWAT 4, non-TSS, since the PvP balance is as good as it can get.

ARE YOU GOING TO ADD AI OFFICERS IN CAREER CO-OP?

Possibly.

DOES THIS MOD WORK WITH OTHER MODS?

Please refer to the "Mod Compatibility" section of the README.

I PLAYED IN SINGLEPLAYER, BUT THERE'S NO BRIEFINGS. WHY?

There are no briefings in an All Missions campaign. Play with either a SWAT 4 + TSS or Extra Missions campaign. The reason there is no briefing is because the All Missions campaign pulls all missions from your hard drive, including custom maps. These custom maps cannot have briefing or entry information added to them very easily. Loading up the briefing will cause a crash on those missions.

I WANT TO CHANGE THE ENTRY IN ALL MISSIONS, BUT YOU REMOVED THE BRIEFING TAB?

The entry options are available on the Mission Selection screen, underneath the difficulty selection.

I PLAYED IN SINGLEPLAYER, BUT THERE'S VERY FEW MISSIONS (1 OR 2). WHY?

You most likely selected the Extra Missions path when you started the career. There's three options: Extra Missions (missions added by the mod), SWAT 4 + TSS (the original game's missions), and All Missions (all missions from your hard drive, with no equipment progression).

ARE THERE MORE MISSIONS FOR EXTRA MISSIONS COMING OUT?

Yes.

I CAN'T FIND X PIECE OF EQUIPMENT! DID YOU REMOVE IT?

Only the ammo pouch was removed from the base game. If you cannot find a piece of equipment, make sure you have unlocked it in the campaign! Note that some equipment (M16, Uzi, AKM, etc) is only available in multiplayer.

BREACHING DOORS WITH THE SHOTGUN DOESN'T WORK!

Whether or not a shotgun breaches the door successfully is random and depends upon a few things:

Generally it takes about 2-3 shots on a wooden door and 3-4 shots on a metal door to breach it successfully.

BEANBAGS DON'T WORK!

Beanbags can be negated by body armor. Try aiming for unarmored parts of the body.

TRAPS AREN'T SHOWING UP!

...or another variation of this: "I played through the first mission, and the README says that there's supposed to be traps on it, but I never saw any traps!" The traps are randomly generated on the mission. On almost every map that they can show up, it's possible for them to not show up at all. On the Fairfax Residence mission, there's a 50% chance (100% on Elite) that a trap will spawn - and there's four total doors it can spawn on. So it's possible to trigger the trap almost immediately, but also possible to never encounter it, depending on the route you take and the randomization.

HOW DO I DISARM A TRAP?

You can't disarm a trap if it's on the other side of a door. You can either blow it up (if it's electronic) with C2 or you can go around and remove it with the toolkit. Or just take the penalty.

ARE YOU GOING TO ADD BALLISTIC SHIELDS?

Possibly, at some point. I would need someone to produce the art assets for it, as I'm not an artist.

ARE YOU GOING TO ADD LEANING WHILE MOVING?

Moving and leaning requires hundreds of animations to be added to the game, due to the way the animation system in the game works. Unless someone can come forward and make all of those animations for me, then no.

DISABLING IRONSIGHTS ZOOM IS NOT WORKING!

If you are ingame and you check "Disable Ironsights Zoom" then it won't work until you change your weapon, because of how the code works. Just change to a different piece of equipment and change back.

WHAT HAPPENED TO INSTANT ACTION?

Instant Action was removed because nobody used it. Furthermore, it causes issues with Permadeath campaigns, among other things.

THE PLAY QUICK MISSION BUTTON WAS REMOVED ON THE MAIN MENU. HOW DO I PLAY THEM?

You now need to create a career for them, in the Career menu. This is because Quick Missions support a ton of new features, like progression, unlocks, etc. They also work with Permadeath modes.

I CANNOT PROGRESS IN THE CAMPAIGN!

This is a common bug that is encountered. Sometimes you will play a mission, even scoring a 100/100 on it, and the next mission won't unlock. Sometimes even if you replay it over and over again, even on Easy, it won't progress. This seems to happen a lot on the first mission for some reason. I have no idea why this happens, or what the explanation is for it. It has happened to me and others in the vanilla game, both with and without the expansion. To solve it, you can just unlock the next mission and the campaign will progress normally after this.

To unlock the next mission, find your SEF/System/Campaign.ini file. (Sometimes it is not here, it is ContentExpansion/System/Campaign.ini) Edit this file in Notepad, and find your career in here. It should be fairly obvious, and look something like this:

[Campaign_Officer_Default]
StringName=Officer Default
CampaignPath=0
availableIndex=0
HACK_HasPlayedCreditsOnCampaignCompletion=False

All you need to do here is take the line that reads availableIndex=<SOME NUMBER> and increase that number by 1. So for example, if I am stuck on the first level, I need to increase that 0 to a 1. You can increase this all the way to 20 and unlock all of the missions, if you feel like cheating.

MOD COMPATIBILITY

SWAT: Elite Force is compatible with skins and custom maps out of the box, without modifications. It is not compatible with total conversions or new weapon mods. It has some compatibility issues with admin mods. To make this process more painless, I've gone ahead and listed each of the mods on Moddb and elsewhere, and provided the compatibility status.

Fully Compatible; no special installation steps:

Partially Compatible; some assembly required or there are bugs:

Not applicable; SEF includes the features of these mods and/or improves upon them:

Already present; this mod is either incorporated into or is a base for another mod:

Not compatible; SEF does not work with these mods at all and cannot possibly function with:

KNOWN ISSUES

Please read the FAQ before looking here! It's entirely possible that what you are seeing is intentional behavior.

OTHER MINOR CHANGES

TSS BUGS FIXED

AI

GAMEPLAY

GUI

EQUIPMENT

All weapons have been changed to have correct muzzle velocities.

QUICK MISSION MAKER

The Quick Mission Maker missions are now accessed in the Career menu. Meaning, you need to create a new career for each pack you want to play through. Quick Mission Maker packs are stored in SEF/Content/Scenarios. You can download new packs off the internet or share your custom-made ones.

MISSION CHANGES

WARNING: This section contains spoilers Missions are listed in order that they occur Morale has been modified across the board. Equipment has been revised and altered to be more in line with what the briefing describers. If an equipment is not listed as unlocked by a mission, it is unlocked by default.

Score

BONUSES

PENALTIES:

HOW TO PLAY IN MULTIPLAYER

Using GameRanger (preferred)

BOTH PLAYERS will need to do the following: Download and install GameRanger. It can be found at http://gameranger.com Next, GameRanger will automatically detect SWAT 4 and SWAT 4: The Stetchkov Syndicate, if all is OK. You may need to manually detect these, if GameRanger doesn't do it for you. You will need to rename the LaunchSEF.exe in SEF/Extras to SWAT4X.exe so Gameranger will recognize it. (It's named LaunchSEF.exe so that it isn't automatically detected!) Then, you will need to modify the Stetchkov Syndicate game in Gameranger so it points to the Swat4X.exe file in SEF/Extras/Swat4X.exe.

THE HOST will need to do the following: Create a game room, as a SWAT 4: The Stetchkov Syndicate game. (TIP: if this is going to be a publicly joinable game, be sure to mention it's using the SEF mod and specify the version!) When enough players have joined, press the Start Game button. This will launch the game. From here, go to the Host Game menu and start up a server. Important Note: Do not launch as a dedicated server while using GameRanger. The other players will automatically connect to your game while you are loading the map.

THE CLIENT will need to do the following: Join a public game, or your friend's game. That's all you really need to do.

TROUBLESHOOTING

NOTE: If you have the mod installed incorrectly, LaunchSEF.exe won't work!

Make sure you have the Microsoft Visual Studio 2017 Redistributable. It is required to run LaunchSEF.exe and other applications. Download it here:

If GameRanger "aborts" when it launches, you may have some application (antivirus?) interfering with LaunchSEF.exe. If this happens, copy all .exe and .dll files from ContentExpansion/System into SEF/System and point GameRanger to the Swat4X.exe that is in SEF/System. This is kind of an ultra last resort option however!

Traditional Method (TCP/IP)

SWAT: Elite Force v4 was the first version of this mod to allow for multiplayer play. v5 introduced Campaign CO-OP and allowed for publishing of games to Swat4Stats without a CD-key (removing DRM that GOG didn't).

If you want to join a game:

If the game you want is not hosted via LAN, then you will need the SWAT4Stats server browser plugin. It's available at http://swat4stats.com - make sure you get the TSS version.

After it is installed, your server list will show all of the servers, including the ones that are on different mods. Just join the one you want. There are a number of 24/7 SEF servers out there.

If the game you want is hosted via LAN, or you cannot find the server in the list, you will need the host's external IP address (have the host look this up on http://myexternalip.com). You can then join the game from the Join Game menu using the IP address.

If you want to host a game

First, you will need to open some ports on your router: 10480 - 10483, TCP/UDP. If you aren't sure how to do this, the following article explains it well: https://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/

OPTIONAL: If you want your game to be publicly visible on the master server list (on swat4stats), you will need to install the Swat4Stats server browser plugin, available at http://swat4stats.com - You'll also want to set your game to be "Internet" and not "LAN" for this to work.

If you aren't playing an Internet/Swat4Stats enabled game, you will need your external IP address for other players to connect. You can look this up on http://myexternalip.com Lastly, you need to determine what type of game you want to play. Regular CO-OP is handled through the Host Game menu ingame, but Campaign CO-OP is done through the Career menu - select a campaign and hit Career CO-OP. The "Equipment" panel will change to a "Settings" panel where you can configure a password, etc just like in Host Game.

Once you have selected your map settings and have started the server at least once, you can quickly launch a server (without going ingame) by using the Dedicated Server.bat file. You can then join the server from the Join Server menu.

Admin System

Server hosts should NOT use MarkMod, SES Mod, Gez Mod, or Snitch for admin features. Those mods can introduce glitches, bugs, or crashes or break some of the features of SWAT: Elite Force. Instead, SEF includes its own admin mod which aims to combine a lot of the best features of those mods. If you are pining for a particular feature of one of those, let me know and I will work on adding it!

Administrator permissions are doled out through the use of "roles." Everyone by default is assigned to the Guest role; it is not recommended that you give the Guest role very many powers, if any at all. A player can only have one role at a time. Each role should have a unique password associated with it. To log in to a role, click on the "Admin Login" button and enter the password associated with the desired role.

Admin Roles should be assigned through the Host Game menu, when setting up the server settings.

Additionally, SEF also has an MOTD system. The only way (currently) to configure this is through the use of editing INI files. Open SEF/System/Swat4XDedicatedServer.ini. In the section titled [SwatGame.SwatAdmin] (at the bottom), add your MOTD lines by the following:

AutoActions=(Delay=NumSeconds,ExecuteText="Command")

Replace NumSeconds with the number of seconds (decimal number) before the command will be executed, and "Command" with the command text. The command text can be "print " followed by a message to print a string to chat, or "ac " followed by an admin command to execute that command.

As a trivial example, this will print three lines of text every 10 minutes:

AutoActions=(Delay=600.0,ExecuteText="[c=FFFFFF]Welcome to my server![\\c]")
AutoActions=(Delay=0.5,ExecuteText="[c=FFFFFF]I hope you have fun![\\c]]")
AutoActions=(Delay=0.5,ExecuteText="[c=FFFFFF]Please be nice to others![\\c]")

WebAdmin defaults to port 6000. You can access it in a web browser by going to: http://:6000/ On the host machine, this can be reached from http://127.0.0.1:6000/

For some tools, you might want to get JSON metadata off of the server. There are two specialized addresses to pull data from. You can see an example of how the data is formatted by going to the listed addresses in your browser. Note that all enumerations start from zero. They are updated as of v7.

enum COOPStatus
{
    STATUS_NotReady,
    STATUS_Ready,
    STATUS_Healthy,
    STATUS_Injured,
    STATUS_Incapacitated,
};
enum WebAdminMessageType
{
    MessageType_Chat,
    MessageType_PlayerJoin,
    MessageType_AdminJoin,
    MessageType_AdminLeave,
    MessageType_Penalty,
    MessageType_SwitchTeams,
    MessageType_NameChange,
    MessageType_Voting,
    MessageType_Kill,
    MessageType_TeamKill,
    MessageType_Arrest,
    MessageType_Round,
    MessageType_WebAdminError,
};

Note that MessageType_SwitchTeams is also used for administrator actions, and messages sent by AutoActions are not included as part of these logs. As a security precaution, note that anyone can access these URLs and get a message log. So you should probably not be discussing sensitive information on the server.

CREDITS/THANK-YOUS

A big massive thank-you to SS for hosting the official EU servers and providing a lot of support with the mod, including finding bugs and providing fixes for them. Countless issues have been fixed because of him.

Briefing Voice-Over: LethalFeline (go check out his YouTube channel!)

Dispatch Voice-Over: Kita Nash (go check out her YouTube channel!)

Adam Moretti Voice-Over: GrimithM (go check out his YouTube channel!)

ELITE SUPPORTERS

These people have generously donated money to Elite Force via Patreon. If you are interested in helping out, you can find our Patreon page here: https://www.patreon.com/user?u=4885526

PUBLICITY

WHO WE ARE: ELITE SQUAD

RETIRED ELITE SQUAD

... if there is anyone I missed, feel free to send me a message on Moddb, and this will be corrected. --eezstreet

LICENSE

This software is licensed under the GNU General Public License v2. You can read it in more detail in the LICENSE file. The source code is freely available at https://github.com/eezstreet/SWATEliteForce