# IW6-Mod

[![discord](https://img.shields.io/badge/Repackers-_Disocrd-blue)](https://discord.com/invite/YcZv2Stt2w)
[![website](https://img.shields.io/badge/Repackers-_Website-green)](https://rimmyscorner.com/)

[![website](https://img.shields.io/badge/Alterware-_Website-red)](https://alterware.dev/)

<p align="center">
  <img alig src="assets/gitea/banner-iw6x.png?raw=true"/>
</p>

## Download
Clone the Git repository or download as ZIP.

- <u>**Download Release (EASIEST)**</u>
  - Click on `Releases` at the top and navigate to the latest release
  - Download `iw6-mod.zip`
  - If you plan on running a server, download `IW6ServerConfigs.zip`

- <u>**Download ZIP**</u>
  - Click on the three dots at the top of the repo ( `◘◘◘` )
  - Click `Download ZIP`

- <u>**Clone the repository:**</u>
  - Open a terminal or command prompt.
  - Run the following command:
    ```
    git clone http://git.rimmyscorner.com/Ahrimdon/iw6-mod.git
    ```

## Installation

1. Extract the file contents of `iw6-mod.zip` into your Call of Duty Ghosts installation folder.
2. Launch `iw6-mod`.
   > **Note**: The executable and any accompanying folders should be in the base game directory.

## Repository Contents
- IW6-Mod
- Required Files
- Dedicated Server Configs

## Getting Game Files

- You can download the `Call of Duty Ghosts` game files directly or torrent them [here](http://git.rimmyscorner.com/Ahrimdon/cod-games-download/releases/tag/v1.0.0).

## Installing Git (Optional)

If you don't have `git` installed on your machine, follow these steps:

1. Visit the [Git download page](https://git-scm.com/downloads).
2. Download the appropriate version for your operating system.
3. Run the installer.
   - During the installation, you will be asked if you want to add Git to your system's PATH environment variable. Ensure you choose the option to do so. This allows you to use Git from the command line without specifying its full path.
4. After installation, open a terminal or command prompt and type `git --version` to ensure Git is correctly installed.

## Setting Up a Server

### <u>Regular Server</u>

<u>**Guide 1** (AlterWare)</u>

You will need the following:

* The Visual C++ 2010 Redistributable Package and the Visual C++ 2015-2019 Redistributable Package.
* Visual Code, Notepad++ or Sublime Text (You may use whatever editor you choose but we don’t recommend Windows Notepad).
* Computer or VPS that’s online 24/7 with a decent connection that has average or above specs (We strongly advise a VPS).
* Some technical knowledge/background knowledge of computers.
* An original copy of the game. You can buy it on Steam @ https://store.steampowered.com/app/209160/Call_of_Duty_Ghosts/

Server setup:

1. Install the IW6 Client distributed by the launcher. [Download](https://git.rimmyscorner.com/Parasyn/iw6-mod/releases/download/v1.0.0/iw6-mod.zip) it and place it into your server folder. Then run it so it automatically downloads the client files.
2. Download the [Server Configurations](https://git.rimmyscorner.com/Parasyn/iw6-mod/releases/download/v1.0.0/IW6ServerConfigs.zip), and place the files in the server folder.
3. Carefully review and edit the configuration settings file to your liking. Give it a hostname, gametype, and remove or add the maps you want, etc.
4. Save the server.cfg file you just edited after you are done.
5. Forward the TCP and UDP port (27016). If you changed the default port or are adding another server, you may need to open the following additional ports: 27017, 21018, etc. This step is not required on a dedicated server or VPS.
6. Run the “start bat” file for the server you want and it shall open.

<u>**Guide 2** (ReactionGaming)</u>

1. Download the IW6x Dedicated Server Full torrent (See Requirements Section) and place it in a location of your choosing on your VPS or PC
2. Download the alterware-launcher.exe and place exe into your base game server folder
3. Download IW6ServerConfigs.zip and extract them the same way you download alterware-launcher.exe
4. Carefully review and edit the configuration settings file to your liking. Give it a hostname, gametype, and remove/add maps that you want on the rotate.
5. Save the server.cfg file you just edit after you are done.
6. Forward the TCP and UDP port (27016). If you changed the default port or add a server you may need to open addition ports (27017, 21018, etc.)
7. Run the DedicatedServer.bat or ExtinctionDedicatedServer.bat and the server should begin to load.

### <u>Extinction Mode Server</u>
- Add `+aliensMode 1` to your .bat file or launch parameters.
- Adjust your map rotation to use the Extinction maps. (e.g. `set sv_maprotation "gametype aliens map mp_alien_town map mp_alien_armory map mp_alien_beacon map mp_alien_dlc3 map mp_alien_last"`)

## Known Issues
- Currently, g_gametype in server.cfg does not work. Game type must be set in the map rotation. Example: set sv_maprotation "gametype war map mp_prisonbreak map mp_dart
- The port cannot be set manually. The server will run on the default port of 27016. Should you decide to set up a second server, the server should automatically assign itself the next highest port.
- Currently, there is a bug that crashes dedicated servers. We suspect it is related to a map change. If you are a server owner, you can try extending your matches to infinity by doing scr_war_timelimit 0; scr_war_scorelimit 0. This will prevent TDM matches from ending and should thus be a workaround for the bug (if you are hosting other gamemodes, replace war accordingly). The X Labs team is working on a fix as fast as possible.
- Other issues may exist that are not covered here. This is an initial release, so be aware that you might experience difficulties running dedicated servers for IW6x.

## Map Code Names

**Base Game:**

| Map Name        | In-Game Code     |
|-----------------|------------------|
| Prision Break   | mp_prisonbreak   |
| Octane          | mp_dart          |
| Tremor          | mp_lonestar      |
| Freight         | mp_frag          |
| Whiteout        | mp_snow          |
| Stormfront      | mp_fahrenheit    |
| Siege           | mp_hashima       |
| Warhawk         | mp_warhawk       |
| Sovereign       | mp_sovereign     |
| Overload        | mp_zebra         |
| Stonehaven      | mp_skeleton      |
| Chasm           | mp_chasm         |
| Flooded         | mp_flooded       |
| Strikezone      | mp_strikezone    |
| Free Fall       | mp_descent_new   |

**DEVASTATION DLC:**

| Map Name    | In-Game Code     |
|-------------|------------------|
| Unearthed   | mp_dome_ns       |
| Collision   | mp_ca_impact     |
| Behemoth    | mp_ca_behemoth   |
| Ruins       | mp_battery3      |

**INVASION DLC:**

| Map Name    | In-Game Code     |
|-------------|------------------|
| Pharaoh     | mp_dig           |
| Favela      | mp_favela_iw6    |
| Mutiny      | mp_pirate        |
| Departed    | mp_zulu          |

**NEMESIS DLC:**

| Map Name    | In-Game Code     |
|-------------|------------------|
| Dynasty     | mp_conflict      |
| Goldrush    | mp_mine          |
| Showtime    | mp_shipment_ns   |
| Subzero     | mp_zerosub       |

**ONSLAUGHT DLC:**

| Map Name    | In-Game Code     |
|-------------|------------------|
| Ignition    | Ignition         |
| Containment | Containment      |
| Bayview     | Bayview          |
| Fog         | Fog              |

## Disclaimer

This software has been created purely for the purposes of
academic research. It is not intended to be used to attack
other systems. Project maintainers are not responsible or
liable for misuse of the software. Use responsibly.

## Credits

**This mod is currently closed source and maintained by [AlterWare.Dev](https://alterware.dev/)**


- Thank you to [this post](https://forum.alterware.dev/t/iw6-server-install-guide/128) on AlterWare Forum guide 1.
- Thank you to [this post](https://reactiongaming.us/community/threads/iw6-server-setup-guide-windows-updated-6-12-2023.1772/#post-7679) on ReactionGaming for guide 2 and map names.

## ***End README***

# <u>Original README.md</u>

# IW6: A Modded Client

This is a client modification for IW6!
**NOTE**: You must legally own Call of Duty®: Ghosts® to run this mod. Cracked/Pirated versions of the game are **NOT** supported.

## Build
- Install [Visual Studio 2022][vs-link] and enable `Desktop development with C++`
- Install [Premake5][premake5-link] and add it to your system PATH
- Clone this repository using [Git][git-link]
- Update the submodules using ``git submodule update --init --recursive``
- Run Premake with the option ``premake5 vs2022`` (Visual Studio 2022). No other build systems are supported.
- Build project via solution file in `build\iw6-mod.sln`.

Only the x64 platform is supported. Do not attempt to build for Windows ARM 64 or Win32.

### Premake arguments

| Argument                    | Description                                    |
|:----------------------------|:-----------------------------------------------|
| `--copy-to=PATH`            | Optional, copy the EXE to a custom folder after build, define the path here if wanted. |
| `--dev-build`               | Enable development builds of the client. |

## Contributing

Contributions are welcome! Please follow the guidelines below:

- Sign [AlterWare CLA][cla-link] and send a pull request or email your patch at patches@alterware.dev
- Make sure that PRs have only one commit, and deal with one issue only

## Disclaimer

This software has been created purely for the purposes of
academic research. It is not intended to be used to attack
other systems. Project maintainers are not responsible or
liable for misuse of the software. Use responsibly.

[premake5-link]:          https://premake.github.io
[git-link]:               https://git-scm.com
[vs-link]:                https://visualstudio.microsoft.com/vs
[cla-link]:               https://alterware.dev/cla
