diff --git a/README.md b/README.md index dde687d..484ca51 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,18 @@ # XLabs +[![patreon](https://img.shields.io/badge/patreon-support-blue.svg?logo=patreon)](https://www.patreon.com/xlabsproject) +[![discord](https://img.shields.io/endpoint?url=https://momo5502.com/iw4x/members-badge.php)](https://discord.gg/sKeVmR3) + +

+ +

+ +
+ +

+ +

+ ## Installation ### Prerequisites: Installing Git @@ -12,34 +25,18 @@ If you don't have `git` installed on your machine, follow these steps: - 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. -### Installation Steps +### Download +Clone the Git repo. Do NOT download it as ZIP, that won't work. -1. **Direct Download** - - Click on `Code` and then `Download ZIP`. - - Extract the `.zip` file to a location of your choice. - -**OR** - -1. **Using Git** - Open a terminal or command prompt. - Run the following command: ``` - git clone https://github.com/YourUsername/GameClientRepo.git + git clone https://github.com/Ahrimdon/test-repo.git ``` -### Setting Up -1. Move the `xlabs` folder to your local app data directory. -> **Note**: Ensure the game client points to the correct local app data directory for proper functionality. -[![patreon](https://img.shields.io/badge/patreon-support-blue.svg?logo=patreon)](https://www.patreon.com/xlabsproject) -[![discord](https://img.shields.io/endpoint?url=https://momo5502.com/iw4x/members-badge.php)](https://discord.gg/sKeVmR3) +### Installation -

- -

- -
- -

- -

\ No newline at end of file +1. Move the `xlabs` folder from `localappdata/xlabs` to your local app data directory. + > **Note**: On Windows, press `Win + R`, type `%localappdata%`, click ok. +2. Extract `IW4XLauncher` \ No newline at end of file diff --git a/iw4x/CHANGELOG.md b/iw4x/CHANGELOG.md new file mode 100644 index 0000000..0f6977c --- /dev/null +++ b/iw4x/CHANGELOG.md @@ -0,0 +1,965 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog v0.3.0](http://keepachangelog.com/en/0.3.0/). + +## r4303 - 2023-05-17 + +### Added + +- Add `dumpZone` ZoneBuilder command (#1033) +- Add `FreezeControlsAllowLook` GSC method (#1026) + +### Fixed + +- The sound fix was removed as the bug no longer happens (#1007) +- Fix crash when the opening the "server info" menu on an empty server list (#1041) +- Fix patch that was causing the game thread to deadlock (#1038) + +## r4251 - 2023-05-03 + +### Added + +- Add GSC client field `ping` as a read-only field (#1002) +- Add GSC client field `address` as a read-only field (#1003) +- Add to the iw4x-rawfiles `common_scripts\utility` GSC script `getIP` function. + +### Fixed + +- `getPing` function in `common_scripts\utility` now works. + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## r4246 - 2023-05-03 + +### Added + +- Add to the iw4x-rawfiles `common_scripts\utility` GSC script `setPing` & `getPing` functions for backward compatibility. + +### Fixed + +- Fix bug with Steam Proxy (#991) +- Fix bug with the `say` GSC notify in regards to hidden chat messages (#989) + +### Removed + +- SetPing GSC method (#998) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## r4226 - 2023-04-26 + +### Changed + +- Chat system will go back to using `SV_CMD_CAN_IGNORE` commands (#972) + +### Security + +- Check the address of the sender for the `print` OOB packet (#969) +- Check the address of the sender for the `voice` OOB packet (#973) + +### Fixed + +- Fix bug with how `sv_mapRotationCurrent` is parsed (#977) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## r4208 - 2023-04-22 + +### Changed + +- `Noclip` GSC method does not require `sv_cheats` to be set to "1" for it to work (#962) +- `Ufo` GSC method does not require `sv_cheats` to be set to "1" for it to work (#962) + +### Fixed + +- Fix `InfoString` output (#961) +- Fix parsing of the server info (client-side) (#953) +- Fix bug in the /info TCP endpoint (#955) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## r4193 - 2023-04-19 + +### Added + +- Add `LogString` GSC function (#895) +- Add `LogString` GSC method (#895) +- Add `sv_replaceTestClients` Dvar (#930) + +### Changed + +- `sv_mapRotationCurrent` supports `exec` directive for executing cfg scripts from the `game_settings` folder (#916) +- `SetPing` GSC method is now deprecated (#903) + +### Security + +- Fix DOS exploit in the network protocol of the game (#942) + +### Fixed + +- `sv_privatePassword` will work as intended (#908) +- Fix crash when loading bots.txt file (#927) + +### Removed + +- Remove `GetIp` GSC method (#903) +- Remove `GetPing` GSC method (#903) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## [0.7.9] - 2023-03-31 + +### Added + +- Game scripts can be loaded from the `scripts/mp`, `scripts/mp/` and `scripts/mp/` folders (#859) +- Add `ReadStream` GSC function (#862) +- Add `IString` GSC function (#877) + +### Changed + +- Test Clients will no longer receive names from the Xlabs Patreon website. The old behaviour was restored (#852) +- Enabled `OpenFile` GSC function (#862) +- Enabled `CloseFile` GSC function (#862) +- Chat system will now use `SV_CMD_RELIABLE` commands to mitigate message duplication (#873) +- The built-in GSC compiler no longer throws fatal errors when overriding a built-in function or method (IW3 behaviour) (#880) +- `CastFloat` GSC function was renamed to `Float` (#880) + +### Fixed + +- Fix bug where knife lounges would not work with a gamepad (#848) +- Fix rare RCon crash (#861) +- Fix bug where `sv_RandomBotNames` stopped working (#876) +- Fix crash caused by "Mongoose" (dependency) (#874) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## [0.7.8] - 2023-03-17 + +### Added + +- Clients can unprotect "saved" Dvars using the command line argument `-unprotect-dvars` (#694) +- Clients can protect all Dvars from being modified by the server using the command line argument `-protect-dvars` (#823) +- Add helpful information to script-related errors. Must set `developer` Dvar to "2" and `developer_script` Dvar to "1" (#721) +- Add command line `-disable-mongoose` argument to disable IW4x's built-in webserver (#728) +- Add command line `-disable-rate-limit-check` argument to disable the rate check on RCon requests (#769) +- GUID of muted clients is saved to the `muted-users.json` file in the `userraw` folder (#732) +- Add `sv_nextMap` Dvar (#736) +- Add `elifdef` and `elifndef` directives to the menu preprocessor (#747) +- Add `r_drawRunners` Dvar (#758) +- Add `r_drawLights` Dvar (#814) +- Add Discord Rich Presence (#761) +- Add `rcon_timeout` Dvar (#769) +- Add `sv_clanName` Dvar (#771) +- Add `InitialWeaponRaise` GSC method (#804) +- Add `RconWhitelistAdd` SV Command (#804) +- Add more options to `bg_bouncesAllAngles` Dvar (#806) +- Add `GetChar` GSC function (#813) +- Add `bg_bunnyHopAuto` Dvar (#818) +- Add `bg_disableLandingSlowdown` Dvar (#818) +- Add new map porting utility tool that makes the map porting process between CoD8 to CoD6 easy + +### Changed + +- Servers can no longer modify client Dvars that are saved in the client's config (#694) +- `banClient` and `muteClient` server commands do not apply to bots anymore (#730) +- The max value of `perk_extendedMeleeRange` Dvar was increased (#782) +- Test Clients will receive names from the Xlabs Patreon website in addition to the names from the bots.txt file (#771) + +### Fixed + +- Fix bug where`reloadmenus` command would not free resources used by custom menus (#740) +- Fix bug where demo playback would stop when opening a laptop based killstreak (#699) +- Fix bug where mod download speed was inexplicably slow (#707) +- Fix bug where `g_hardcore` could not be set by servers (#708) +- Fix "user cmd angles" for test clients (#707) +- Fix bug where `FileRead` GSC function could return buffers that are too big (#767) +- Fix bug where the `OnPlayerSay` GSC function would cause issues (#776) + +### Removed + +- Remove `zb_prefer_disk_assets` Dvar (#772) + +### Known issues + +- Sound issue fix is experimental as the bug is not fully understood. + +## [0.7.7] - 2022-12-31 + +### Added + +- Add `r_forceTechnique` Dvar to debug techniques on materials. +- Add `IsSprinting` GSC method (#587) +- Add `StorageLoad` GSC function (#595) +- Add `bg_climbAnything` Dvar (#663) +- Add "ClanTag" support for bots (#645) +- Add `sv_randomBotNames` Dvar (#665) +- Add support for parsing localized strings files (.str & .json) (#621) +- Add `callvote` menus (#613) +- IW3x-port converts Technique Sets between CoD4 and CoD6 properly. +- Add new map porting utility tool that makes the map porting process between CoD4 to CoD6 easy. + +### Changed + +- `r_drawModelNames` now uses ground lighting when available. +- Speculars are now enabled on custom maps. +- Techset(s) get loaded from disk first rather than memory. +- Use CSO format for Vertex Shaders & Pixel Shaders on ZoneBuilder to allow replacement/swapping. +- New map porting utility tool builds teams directly into the map. + +### Fixed + +- Fix bug where ZoneBuilder would not build loaded sounds correctly. +- Fix bug where ZoneBuilder no longer differentiates assets depending on their name. +- Fix building FX with ZoneBuilder. +- Fix branding in ZoneBuilder generated zones. +- Fix Script String crash when building zones. +- Fix the changelog menu (#583) +- Fix bug when adding commands (#609) +- Fix bug where some ported maps would either crash or lag (mp_zavod, mp_kowloon, ...) +- Fix GSC conversion from CoD4 to CoD6 (Specular Scale, Create Exp Fog, Create FX, ...) +- The map porting process from CoD4 to IW4x has improved. +- Ported map zones are about 40% lighter than before. +- Static models are now lit correctly depending on their position and ground lighting. +- New map porting utility ports sounds and effects properly. + +### Removed + +- Remove `HttpGet`& `HttpCancel` (#603) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.6] - 2022-11-22 + +### Added + +- Add `GetStat` GSC method (#485) +- Add `SetStat` GSC method (#485) +- Add `statGet` command (#485) +- Add `FileRemove` GSC function (#509) +- Add `cg_drawDisconnect` Dvar (#551) +- Add loading info strings from raw file (#557) +- Add localized file string parsing to Zone Builder (.str) (#569) +- Add single localized file string parsing to Zone Builder (#569) + +### Changed + +- Change font and colour of the external console (#477) + +### Fixed + +- Fix crash for debug build (#476) +- Fix auth bug with the connect protocol `iw4x://` (#478) +- Fix party server not receiving packets (#500) +- Fix crash caused by server thread issues (#561) +- Fix hours spent playing IW4x not counting towards the hours spent playing MW2 on Steam (#573) +- Remove non-existent menus from code (#483) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.5] - 2022-09-03 + +### Added + +- Add `bg_rocketJumpScale` Dvar (#413) +- Add `CastFloat` GSC function (#414) +- Add `Strtol` GSC function (#414) +- Add `bg_lean` Dvar (#421 +- Add voice chat (#425) +- Add `vote` & `callvote` client commands (#447) +- Add `kill` client command (#451) +- Add `voteKick`, `voteTempBan`, `voteTypeMap`, `voteMap` and `voteGame` UI script tokens (#456) +- Add `Int64IsInt`, `Int64ToInt` and `Int64OP` GSC functions (#419) + +### Changed + +- Steam status is no longer set to busy (#417) +- `g_allowVote` is a replicated Dvar (#457) + +### Security + +- Disable `HttpGet`& `HttpCancel` (#449) + +### Fixed + +- Fixed `startSingleplayer` command (#404) +- General stability update + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.4] - 2022-07-28 + +### Added + +- Add `DisableWeaponPickup` GSC method (#329) +- Add `EnableWeaponPickup` GSC method (#329) +- Add `protect-saved-dvars` command line argument (#335) +- Add `clanName` dvar. Can be edited in the "barracks" menu (#361) +- Add DLC9 containing classic maps from CoD4: Backlot, Chinatown, Winter Crash, Pipeline and Downpour. +- Add to the iw4x-rawfiles `common_scripts\iw4x_utility` GSC script, it contains the scripts-based solution for the removed GSC built-in methods. + +### Changed + +- `sv_mapRotationCurrent` functionality has been restored for backward compatibility (#328) +- GSC IO Functions are restricted to the `scriptdata` folder (#322) +- `scriptablehttp` command line argument is no longer needed (#322) + +### Fixed + +- Node system works again for clients (#331) +- Fixed output of `g_log_list` & `log_list` (#336) +- Fixed toast notifications (#337) +- Fixed `banClient` command (#311) +- Fixed singleplayer maps crashing in renderer module (#340) +- Fixed muzzle flash on COD:OL maps (#352) +- Server commands are no longer being registered twice (#339) +- Fixed issue where grenades and projectiles had no bounce sounds (#368) +- Fixed issue that could cause the game to crash when loading CoD4 maps (#372) + +### Removed + +- Remove `noclip` built-in GSC method. Replaced with script-based solution (#387) +- Remove `ufo` built-in GSC method. Replaced with script-based solution (#387) +- Remove `god` built-in GSC method. Replaced with script-based solution (#388) +- Remove `demiGod` built-in GSC method. Replaced with script-based solution (#388) +- Remove `noTarget` built-in GSC method. Replaced with script-based solution (#388) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.3] - 2022-06-23 + +### Added + +- Add `SetName` GSC method (#288) +- Add `ResetName` GSC method (#288) +- Add `OnPlayerSay` GSC function (#265) +- Add `Give` client command (works with weapons only) (#292) +- Add `sv_disableChat` Dvar (#290) +- Add `addMap` command (#302) +- Add `addGametype` command (#302) + +### Changed + +- `sv_mapRotationCurrent` is not being used anymore (#302) +- `sv_mapRotation` is parsed once on startup (#283) + +### Security + +- Remove `openLink` command (#286) + +### Fixed + +- Fix font generation (#277) +- Fix crash on clearing key binds (#278) +- Fix maps dropping out of the map rotation when using `sv_randomMapRotation` (#283) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. +- Toast notifications have been disabled because they cause a crash that needs to be investigated + +## [0.7.2] - 2022-05-10 + +### Added + +- Add `IsArray` GSC function (#248) +- Keybind fields in menus work with controller keys (#255) + +### Changed + +- GSC function `GetSystemTime` now returns the Unix time (#258) + +### Fixed + +- Knife charge is fixed for controller players (#259) +- Fixed internet, local and favorites filters (#260) +- `sv_lanOnly` Dvar now prevents the server from sending heartbeats to master if set to true (#246) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.1] - 2022-05-03 + +### Added + +- Add `ToUpper` GSC Function (#216) +- Add `StrICmp` GSC Function (#216) +- Add `IsEndStr` GSC Function (#216) +- Add `DropAllBots` GSC Function (#174) +- Add GSC entity field `entityflags` (#228) +- Add GSC client field `clientflags` (#228) +- Add `bg_surfacePenetration` Dvar (#241) +- Add `bg_bulletRange Dvar` (#241) + +### Changed + +- Test clients' native functionality has been restored by default (#162) +- Renamed GSC method `isBot` to `IsTestClient` (#162) +- Custom GSC functions can be called correctly from a game script (#216) +- GSC functions `HttpCancel` and `HttpCancel` require the game to be launched with the command line argument `scriptablehttp` (#162) +- Master server list will be used instead of the node system (load server list faster) (#234) + +### Fixed + +- Fixed issue with mouse acceleration when polling rate is greater than 125Hz (#230) +- Fixed issue with player speed caused by sprinting from the prone position (#232) +- Fixed client crash when `cg_chatHeight` was set to 0 (#237) +- Fixed GSC function `Scr_TableLookupIStringByRow` (#162) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.7.0] - 2022-05-01 + +### Added + +- Add controller support (#75) +- Add aim assist for controllers (#75) +- Unlock `camera_thirdPersonCrosshairOffset` Dvar (#68) +- Add support for building custom Fonts with Zonebuilder (#88) +- Add colorblind friendly team colors (#101) +- Add emojis based on title cards and emblems to use in the chat and server names Example: `:nuke:` (#130) +- Upon leaving a server 'archive' dvars (saved in the config file) will be reset to the value they had prior to joining the server (#134) +- Add `muteClient` command for the game chat (#159) +- Add `unmute` command for the game chat (#159) +- Add `sv_allowAimAssist` Dvar (#75) +- Add `sv_allowColoredNames` (#130) +- Add `sv_randomMapRotation` Dvar (#146) +- Add `rcon_log_requests` Dvar (#195) +- Add `player_duckedSpeedScale` Dvar (#141) +- Add `player_proneSpeedScale` Dvar (#141) +- Add `cg_ufo_scaler` Dvar (#158) +- Add `cg_noclip_scaler` Dvar (#158) +- Add `bg_bouncesAllAngles` Dvar (#158) +- Add `bg_rocketJump` Dvar (#158) +- Add `bg_elevators` Dvar (#156) +- Add `noclip` client command (#152) +- Add `ufo` client command (#152) +- Add `God` client command (#152) +- Add `demigod` client command (#152) +- Add `notarget` client command (#152) +- Add `noclip` GSC Function (#152) +- Add `ufo` GSC Function (#152) +- Add `God` GSC Function (#152) +- Add `demigod` GSC Function (#152) +- Add `notarget` GSC Function (#152) +- Add `replaceFunc` GSC Function (#144) + +### Changed + +- Renamed `sv_enableBounces` to bg_bounces (#158) +- Renamed `g_playerCollision` to bg_playerEjection (#158) +- Renamed `g_playerEjection` to bg_playerCollision (#158) +- `setviewpos` client command works outside private matches (#163) +- `ufo` client command works outside of private matches (#152) +- `noclip` client command works outside of private matches (#152) +- If a player name is less than 3 characters server will change it to `Unknown Soldier` (#130) +- `scr_player_forceautoassign` Dvar is false by default + +### Fixed + +- Fixed issue where CoD:O DLC Maps caused DirectX crash following `vid_restart` (#37) +- Fixes and improvements to Zonebuilder +- Fixed issue where the game froze following base game script throwing an error (#74) +- Fixed RCon on party servers (#91 - #95) +- Fixed slow motion during final kill cams (#111 - #107) +- Fixed sound issue that causes the game to freeze (#106) +- Fixed issue where materials strings found in hostnames, player names, chat etc. caused the game to crash (#113) +- Fixed issue with servers displaying an invalid player count (#113) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. +- Sound issue fix is experimental as the bug is not fully understood. +- `reloadmenus` command does not free resources used by custom menus. + +## [0.6.1] - 2020-12-23 + +### Added + +- Add host information to `/info` endpoint (request) +- Add `fileWrite` GSC Function (#36) +- Add `fileRead` GSC Function (#36) +- Add `fileExists` GSC Function (#36) +- Add `fileRemove` GSC Function (#36) +- Add `botMovement` GSC Function (#46) +- Add `botAction` GSC Function (#46) +- Add `botWeapon` GSC Function (#46) +- Add `botStop` GSC Function (#46) +- Add `isBot` GSC Function (#46) +- Add `setPing` GSC Function (#46) +- Add `GetSystemTime` and `GetSystemTimeMilliseconds` GSC Functions (#46) +- Add `PrintConsole` GSC Function (#46) +- Add `Exec` GSC Function (#46) +- Add `getIP` GSC Method (#36) +- Add `getPing` GSC Method (#36) +- Add `scr_intermissionTime` Dvar (#25) +- Add `g_playerCollision` Dvar (#36) +- Add `g_playerEjection` Dvar (#36) +- Add `r_specularCustomMaps` Dvar (#36) +- Unlock `safeArea_horizontal` and `safeArea_vertical` Dvars (#42) +- Unlock `cg_fovscale` Dvar (#47) +- Add `g_antilag` Dvar (#61) + +### Changed + +- Stats are now separate for each mod (#6). Player stats are copied to `fs_game` folder if no stats exist for this mod yet. Keep in mind this also means that level, XP and classes will not be synchronized with the main stats file after this point. +- Reduced duration of toasts (#48) +- Use old bot names if bots.txt is not found (#46) + +### Fixed + +- Fixed a node system related crash (#45) +- Fixed an issue that made dedicated servers crash when info was requested during map rotation (#43) +- Fixed an issue where the game was trying to decrypt GSC files which caused it to crash when loading mods (#35) +- Fixed an issue causing the game to crash when Steam was running in the background (#56) +- Fixed slow download speed when using fast download + +### Removed + +- Removed old updater functionality (#54) + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. + +## [0.6.0] - 2018-12-30 + +### Added + +- Add `unbanClient` command. +- Add `/serverlist` api endpoint on dedicated servers +- Add dvar to control the server query rate (net_serverQueryLimit & net_serverFrames) + +### Changed + +- Update dependencies + +### Fixed + +- Fix mods not working in private matches. +- Fix multiple game structures (map tools) +- Fix multiple vulnerability's +- Fix lag spikes on lower end PCs +- Fix invalid name check +- Fix `openLink` command crash issue +- Fix lobby server map downloading +- Fix steam integration + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. + +## [0.5.4] - 2017-07-09 + +### Added + +- Integrate IW4MVM by luckyy. + +### Changed + +- Displayed stats for Dragunov have been changed, has no effect on actual game play. + +### Fixed + +- Fix fast download failing when the target host is missing a trailing slash. +- Fix servers not being listed in the server browser. +- Fix some FPS drop issues caused by compression code. + +### Known issues + +- HTTPS is not supported for fast downloads at the moment. + +## [0.5.3] - 2017-07-02 + +### Added + +- Increase webserver security. + +### Fixed + +- Reduce lags introduced by nodes. +- Fix modlist download. + +## [0.5.2] - 2017-07-02 + +### Fixed + +- Fix dedicated server crash. + +## [0.5.1] - 2017-07-02 + +### Added + +- Add fast download option for custom mods/maps based on Call of Duty 4. +- Display a toast when an update is available. +- Use the hourglass cursor while loading assets (with the native cursor feature). +- Show bots in parenthesis after the number of players in the serverlist (request). +- Add GSC event `level waittill("say", string, player);` (request). +- Restrict unauthorized mod download for password protected servers. +- Add OMA support for 15 classes. + +### Changed + +- Show friend avatars when they play IW4x (request). +- Rewrite and optimize the entire node system. + +### Fixed + +- Fix lags and frame drops caused by server sorting. +- Fix demos on custom maps. +- Can no longer join a lobby or server with an incorrect password. +- Fix crashes caused by a bug in file/data compression. +- Improve overall stability. + +### Removed + +- Remove syncnode command for node system. +- Remove steam start. + +## [0.5.0] - 2017-06-04 + +### Added + +- Add GSC functionality to download files via HTTP(S) (request). +- Implement preliminary custom map support. + +### Changed + +- Add new nicknames for bots. +- Bumped Fastfile version. If you built fastfiles with the zone builder (e.g. mod.ff) you have to rebuild them! +- Default `sv_network_fps` to `1000` on dedicated game servers. +- Increase maximum FOV to 120. + +### Fixed + +- Fix `iw4x_onelog` dvar. +- Fix server list only showing local servers by default instead of Internet servers. +- Fix some deadlock situations on game shutdown. + +## [0.4.2] - 2017-03-16 + +### Changed + +- Disable unnecessary dvar update in server browser. +- Update bot names. + +### Fixed + +- Fix process permissions. +- Fix classic AK-47 color bleedthrough. +- Re-aligned the MG4's Raffica iron sights. + +## [0.4.1] - 2017-03-10 + +### Fixed + +- Fix command line argument parsing. + +## [0.4.0] - 2017-03-10 + +### Added + +- Set played with status. +- Add support for 15 classes. +- Add `iw4x_onelog` dvar. +- Add show server/playercount in server browser. + +### Changed + +- Do not show friend status notifications with stream friendly UI. +- Reduce loaded modules for dedis. +- Use joystick emblem for friend status. +- Disable XP bar when max level. +- Change fs_game display postition. +- Replace Painkiller with Juiced from IW5. + +### Fixed + +- Fix AK weaponfiles. +- Fix brightness slider. +- Fix text length for column mod in server browser. +- Changed the L86 LSW to use the correct HUD icon. +- Re-aligned the M93 Raffica's iron sights. +- Re-aligned the Desert Eagle's iron sights. + +## [0.3.3] - 2017-02-14 + +### Added + +- Add mapname to friend status (request). +- Add option to toggle notify friend state. +- Add support for mod.ff. + +### Changed + +- Disabled big minidump message box. +- Limit dedicated servers to 15 instances per IP. +- Move build number location. + +### Fixed + +- Fix audio bug in options menu. +- Fix crash caused by faulty file download requests to game hosts. +- Fix friend sorting. +- Fix game not starting issue under certain circumstances. +- Fix menu crash. +- Fix typo in security increase popmenu. +- Fix vid_restart crash with connect protocol. +- Fix weapon crash issue. +- Potentially fix no-ammo bug. + +### Removed + +- Remove news ticker and friends button from theater. + +## [0.3.2] - 2017-02-12 + +This is the third public Beta version. + +### Added + +- Add working friend system. +- Add colored pings in the server list. +- Add credits. +- Add first launch menu. +- Add AK-47 (Classic) attachments. +- Add HUD icon for night vision goggles. + +### Changed + +- Join when pressing enter in server list (request). +- Redesign and refactor all fullscreen menus. +- Increase weapon and configstring limit. +- Allow creating full crash dumps if wanted. +- Set default name from steam. + +### Fixed + +- Fix missing models on village. +- Fix custom server motd (request). +- Fix various memory leaks. +- Fix mouse pitch (request). +- Fix compatibility with B3 (request). +- Fix RCon bug (request). +- Fix dedicated server crash on linux. +- Fix crash in mod download. +- Fix peacekeeper reload sound. +- Fix cl_maxpackets 125 in settings (request). +- Fix deserteaglegold_mp icon. + +### Known issues + +- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS. + +## [0.3.1] - 2017-01-21 + +This is the second public Beta version. + +### Added + +- Add classic AK-47 to CAC. +- Add servers to favorites when ingame. +- Add delete favorites button in the serverlist. + +### Changed + +- Change maplist to a dynamic list. + +### Fixed + +- Fix list focus. +- Fix mod restart loop. +- Fix mod download status. +- Fix modelsurf crash. +- Fix floating AK-74u. + +### Known issues + +- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS. + +## [0.3.0] - 2017-01-14 + +This is the first public Beta version. + +### Added + +- Add com_logFilter dvar. +- Add peacekeeper. +- Add support for maps from DLC 8 (Recycled Pack) + + - Chemical Plant (mp_storm_spring) + - Crash: Tropical (mp_crash_tropical) + - Estate: Tropical (mp_estate_tropical) + - Favela: Tropical (mp_fav_tropical) + - Forgotten City (mp_bloc_sh) + +### Changed + +- Improve node synchronization handling. +- Improve security by modifying GUIDs to allow 64-bit certificate fingerprints. +- Optimize fastfiles, they are now a lot smaller. +- Replace intro. + +### Fixed + +- Fix concurrent image loading bug. +- Fix issues when spawning more than one bot. +- Fix no ammo bug. +- Fix server crash on startup. +- Fix splash screen hang. + +### Known issues + +- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS. + +## [0.2.1] - 2016-12-14 + +This is the second public Alpha version. + +### Added + +- Add support for CoD:Online maps. + + - Firing Range (mp_firingrange) + - Rust (mp_rust_long) + - Shipment (mp_shipment/mp_shipment_long) + +- Add `sv_motd` Dvar for server owners to set custom motd (will be visible in the loadscreen). +- Add Zonebuilder support for sounds and fx. +- Add command setviewpos. +- Add high-definition loadscreens. + +### Changed + +- Rename Arctic Wet Work map to it's official name (Freighter). +- Complete redesign of the main menus. +- Allow `cl_maxpackets` to be set up to 125. + +### Fixed + +- Fix crash when using the Harrier killstreak. +- Disable code that downloads news/changelog when in zonebuilder mode. +- Fix freeze on game shutdown. +- Disable unlockstats while ingame to prevent a crash. + +### Known issues + +- IW4x on Linux currently requires gnutls to be installed to access the Tor service via HTTPS. + +## [0.2.0] - 2016-10-09 + +This is the first public Alpha version. + +### Added + +- Support for CoD:Online maps. + + - Arctic Wet Work (mp_cargoship_sh) + - Bloc (mp_bloc) + - Bog (mp_bog_sh) + - Crossfire (mp_cross_fire) + - Killhouse (mp_killhouse) + - Nuketown (mp_nuked) + - Wet Work (mp_cargoship) + +### Fixed + +- Fix techniques in Zonebuilder. +- Fix possible memory leak. +- Fix timeout bug when connecting to server via iw4x link. +- Partially fix deadlock in decentralized networking code. + +### Known issues + +- Running IW4x on Linux currently requires gnutls to be installed additional to Wine as it needs to access the Tor service via HTTPS. + +## [0.1.1] - 2016-09-19 + +This version is an internal Pre-Alpha version. + +### Added + +- Add IW5 material embedding system. + +### Changed + +- Enhance mod download with detailed progress display. + +### Fixed + +- Fix and optimize network logging commands. +- Fix console not displaying command inputs properly. +- Fix crash when running multiple instances of the IW4x client from the same directory. +- Fix crash when the `securityLevel` command is used on a game server. +- Fix possible data corruption in code for decentralized networking. +- Fix possible deadlock during client shutdown. + +## [0.1.0] - 2016-09-03 + +This version is an internal Pre-Alpha version. + +### Added + +- Add `banclient` command which will permanently ban a client from a server. The ban will persist across restarts. +- Add capabilities to save played games and replay them ("Theater"). +- Add code for generating and sending minidumps for debugging purposes. This feature is meant to be used only during the Open Beta and will be removed once the code goes to stable release. +- Add commands that allow forwarding console and games log via UDP to other computers ("network logging"). +- Add D3D9Ex. +- Add filters for server list. +- Add handling for `iw4x://` URLs ("connect protocol"). For example, if IW4x is properly registered in Windows as URL handler for `iw4x://` URLs you can type `iw4x://ip:port`. If possible, this will connect to the server in an already running IW4x client. +- Add lean support through new key bindings. +- Add native cursor as replacement for the sometimes laggy in-game cursor. This change can be reverted in the settings menu. +- Add news ticker. +- Add remote console ("RCon"). +- Add support for BigBrotherBot. +- Add support for hosting game mods in order to allow players to just join modded servers out of the box ("mod download"). +- Add Warfare2 text coloring. +- Add zone builder. For more information see the respective documentation. +- Implement a completely decentralized peering network. +- Implement playlists which can be used for flexible map and gametype rotation. +- Introduce security levels. This ensures that you need to "pay" with CPU power to verify your identity once before being able to join a server which reduces the interval at which people who get banned can circumvent server bans through using new identities. The default security level is 23. +- Move IW4x resource files into their own folder to prevent clogging up the main game directories. +- Reintroduce parties, now also available for dedicated servers ("lobby servers"). + +### Changed + +- Move logs to `userraw` folder. +- Replace main menu background music. diff --git a/iw4x/CODESTYLE.md b/iw4x/CODESTYLE.md new file mode 100644 index 0000000..e07b386 --- /dev/null +++ b/iw4x/CODESTYLE.md @@ -0,0 +1,33 @@ +# Code Style + +```c++ +namespace SomeNamespace +{ + class SomeClass + { + public: + int someVariable; + static int SomeStaticVariable; + + void someMethod() + { + // [...] + } + + static void SomeStaticFunction() + { + // [...] + } + }; +} + +void Main(int argument) +{ + SomeNamespace::SomeClass someObject; + someObject.someVariable = 0; + someObject.someMethod(); + + SomeNamespace::SomeClass::SomeStaticVariable = 0; + SomeNamespace::SomeClass::SomeStaticFunction(); +} +``` \ No newline at end of file diff --git a/iw4x/README.md b/iw4x/README.md new file mode 100644 index 0000000..229b870 --- /dev/null +++ b/iw4x/README.md @@ -0,0 +1,44 @@ +![license](https://img.shields.io/github/license/iw4x/iw4x-client.svg) +[![build](https://github.com/iw4x/iw4x-client/workflows/Build/badge.svg)](https://github.com/iw4x/iw4x-client/actions) + +# IW4x: Client + +## Compile from source + +- Clone the Git repo. Do NOT download it as ZIP, that won't work. +- Update the submodules and run `premake5 vs2022` or simply use the delivered `generate.bat`. +- Build via solution file in `build\iw4x.sln`. + +## Premake arguments + +| Argument | Description | +|:----------------------------|:-----------------------------------------------| +| `--copy-to=PATH` | Optional, copy the DLL to a custom folder after build, define the path here if wanted. | +| `--copy-pdb` | Copy debug information for binaries as well to the path given via --copy-to. | +| `--force-unit-tests` | Always compile unit tests. | +| `--disable-binary-check` | Do not perform integrity checks on the exe. | + +## Command line arguments + +| Argument | Description | +|:------------------------|:-----------------------------------------------| +| `-tests` | Perform unit tests. | +| `-entries` | Print to the console a list of every asset as they are loaded from zonefiles. | +| `-stdout` | Redirect all logging output to the terminal iw4x is started from, or if there is none, creates a new terminal window to write log information in. | +| `-console` | Allow the game to display its own separate interactive console window. | +| `-dedicated` | Starts the game as a headless dedicated server. | +| `-bigminidumps` | Include all code sections from loaded modules in the dump. | +| `-reallybigminidumps` | Include data sections from all loaded modules in the dump. | +| `-dump` | Write info of loaded assets to the raw folder as they are being loaded. | +| `-nointro` | Skip game's cinematic intro. | +| `-version` | Print IW4x build info on startup. | +| `-nosteam` | Disable friends feature and do not update Steam about the game's current status just like an invisible mode. | +| `-unprotect-dvars` | Allow the server to modify saved/archive dvars. | +| `-zonebuilder` | Start the interactive zonebuilder tool console instead of starting the game. | + +## 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. diff --git a/iw4x/SECURITY.md b/iw4x/SECURITY.md new file mode 100644 index 0000000..ab88d3a --- /dev/null +++ b/iw4x/SECURITY.md @@ -0,0 +1,17 @@ +## iw4x-client Security +We take security very seriously at XLabsProject. We welcome any peer review of our 100% free software source code to ensure nobody's IW4x clients or servers are ever compromised or hacked. + +### Where should I report security issues? + +In order to give the community time to respond and upgrade we strongly urge you report all security issues privately. +Please e-mail MauriceHeumann@gmail.com directly to provide details and repro steps. + +### Other key people + +In the exceptional case that you do not receive a response within a reasonable time frame from our lead developer, please contact any of the following people: +- Future/diamante0018: iw4x-sp@proton.me + +We will try respond as soon as possible, but please note: + +### This is an entirely free software project. It is maintained in our spare time. +### We cannot guarantee quick responses but we very much appreciate your discretion when reporting security vulnerabilities. diff --git a/iw4x/iw4x.dll b/iw4x/iw4x.dll index 996fc3d..759796c 100644 Binary files a/iw4x/iw4x.dll and b/iw4x/iw4x.dll differ diff --git a/iw4x/version/r4227/iw4x.dll b/iw4x/version/r4227/iw4x.dll new file mode 100644 index 0000000..996fc3d Binary files /dev/null and b/iw4x/version/r4227/iw4x.dll differ diff --git a/iw4x/r4344/iw4x.dll b/iw4x/version/r4344/iw4x.dll similarity index 100% rename from iw4x/r4344/iw4x.dll rename to iw4x/version/r4344/iw4x.dll diff --git a/localappdata/xlabs/data/iw4x/iw4x.dll b/localappdata/xlabs/data/iw4x/iw4x.dll index 996fc3d..759796c 100644 Binary files a/localappdata/xlabs/data/iw4x/iw4x.dll and b/localappdata/xlabs/data/iw4x/iw4x.dll differ diff --git a/server-configs/IW4ServerConfigs/DedicatedLobbyServer.bat b/server-configs/IW4ServerConfigs/DedicatedLobbyServer.bat new file mode 100644 index 0000000..6e9d624 --- /dev/null +++ b/server-configs/IW4ServerConfigs/DedicatedLobbyServer.bat @@ -0,0 +1,91 @@ +@echo off +:://///////////////////////////////////////////////////////////////////// +::/// IW4x Lobby Server Configuration start-up file /// +:://///////////////////////////////////////////////////////////////////// +::// For support visit us on discord discordapp.com/invite/sKeVmR3 // +::// // +::// Defualt Playlist Gamemode from myplaylists.info // +::// (If you change that file around. consider this list useless..) // +::// // +::// 0 iw4x DLC (bonus edit) // +::// 1 Team Deathmatch // +::// 2 Hardcore Team Deathmatch // +::// 3 Free-for-all // +::// 4 Hardcore Free-for-all // +::// 5 Domination // +::// 6 Hardcore: Domination // +::// 7 Search and Destory // +::// 8 Hardcore: Search and Destory // +::// 9 Demolition // +::// 10 Hardcore: Demolition // +::// 11 Capture the flag // +::// 12 Hardcore: Capture the flag // +::// 13 Headquarters // +::// 14 Hardcore: Headquarters // +::// 15 Sabotage // +::// 16 Hardcore: Sabotage // +::// 17 Ground War // +::// 18 Hardcore: Ground War // +::// // +:://///////////////////////////////////////////////////////////////////// + +:://///////////////////////////////////////////////////////////////////// +::// Choose your gamemode of 0-22 of your choice above // +:://///////////////////////////////////////////////////////////////////// + +set PlaylistGameMode=1 + +:://///////////////////////////////////////////////////////////////////// +::// Your Game Server Port. // +::// Make sure you Port Forward both UDP & TCP // +:://///////////////////////////////////////////////////////////////////// + +set GamePort=28960 + + +:://///////////////////////////////////////////////////////////////////// +::// Offline/Private LAN Party Mode // +::// 0 Disable (Send heartbeats to online serverlist) // +::// 1 Enable (Add to the Local serverlist. Unlisted from Public) // +:://///////////////////////////////////////////////////////////////////// + + +set LANMode=0 + + +:://///////////////////////////////////////////////////////////////////// +::// Below edits are optional unless you run multiable servers or mods.// +:://///////////////////////////////////////////////////////////////////// +::// Load a mod on your server // +::// Example: ModfolderName=mods/bots // +::// // +::// UNLOAD a mod on your server // +::// Example: ModfolderName= // +:://///////////////////////////////////////////////////////////////////// + + +set ModFolderName= + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited Playlist in the "userraw" folder goes here (optional) // +:://///////////////////////////////////////////////////////////////////// + + +set PlaylistFilename=myplaylists.info + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited partyserver.cfg in the "userraw" folder goes here // +::// This is were you edit your hostname, rcon, inactivity, etc // +::// (Optional) // +:://///////////////////////////////////////////////////////////////////// + + +set ServerFilename=partyserver.cfg + +:://///////////////////////////////////////////////////////////////////// +:://DONE!! WARNING! Don't mess with anything below this line. SEROUSLY!// +:://///////////////////////////////////////////////////////////////////// + +start iw4x.exe -dedicated +set fs_game "%ModFolderName%" +set sv_lanonly "%LANMode%" +set net_port "%GamePort%" +exec %ServerFilename% +set party_enable "1" +set playlistFilename "%PlaylistFilename%" +playlist "%playlistGameMode%" diff --git a/server-configs/IW4ServerConfigs/DedicatedLobbyServerLAN.bat b/server-configs/IW4ServerConfigs/DedicatedLobbyServerLAN.bat new file mode 100644 index 0000000..460cf79 --- /dev/null +++ b/server-configs/IW4ServerConfigs/DedicatedLobbyServerLAN.bat @@ -0,0 +1,91 @@ +@echo off +:://///////////////////////////////////////////////////////////////////// +::/// IW4x Lobby Server Configuration start-up file /// +:://///////////////////////////////////////////////////////////////////// +::// For support visit us on discord discordapp.com/invite/sKeVmR3 // +::// // +::// Defualt Playlist Gamemode from myplaylists.info // +::// (If you change that file around. consider this list useless..) // +::// // +::// 0 iw4x DLC (bonus edit) // +::// 1 Team Deathmatch // +::// 2 Hardcore Team Deathmatch // +::// 3 Free-for-all // +::// 4 Hardcore Free-for-all // +::// 5 Domination // +::// 6 Hardcore: Domination // +::// 7 Search and Destory // +::// 8 Hardcore: Search and Destory // +::// 9 Demolition // +::// 10 Hardcore: Demolition // +::// 11 Capture the flag // +::// 12 Hardcore: Capture the flag // +::// 13 Headquarters // +::// 14 Hardcore: Headquarters // +::// 15 Sabotage // +::// 16 Hardcore: Sabotage // +::// 17 Ground War // +::// 18 Hardcore: Ground War // +::// // +:://///////////////////////////////////////////////////////////////////// + +:://///////////////////////////////////////////////////////////////////// +::// Choose your gamemode of 0-22 of your choice above // +:://///////////////////////////////////////////////////////////////////// + +set PlaylistGameMode=1 + +:://///////////////////////////////////////////////////////////////////// +::// Your Game Server Port. // +::// Make sure you Port Forward both UDP & TCP // +:://///////////////////////////////////////////////////////////////////// + +set GamePort=28960 + + +:://///////////////////////////////////////////////////////////////////// +::// Offline/Private LAN Party Mode // +::// 0 Disable (Send heartbeats to online serverlist) // +::// 1 Enable (Add to the Local serverlist. Unlisted from Public) // +:://///////////////////////////////////////////////////////////////////// + + +set LANMode=1 + + +:://///////////////////////////////////////////////////////////////////// +::// Below edits are optional unless you run multiable servers or mods.// +:://///////////////////////////////////////////////////////////////////// +::// Load a mod on your server // +::// Example: ModfolderName=mods/bots // +::// // +::// UNLOAD a mod on your server // +::// Example: ModfolderName= // +:://///////////////////////////////////////////////////////////////////// + + +set ModFolderName= + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited Playlist in the "userraw" folder goes here (optional) // +:://///////////////////////////////////////////////////////////////////// + + +set PlaylistFilename=myplaylists.info + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited partyserver.cfg in the "userraw" folder goes here // +::// This is were you edit your hostname, rcon, inactivity, etc // +::// (Optional) // +:://///////////////////////////////////////////////////////////////////// + + +set ServerFilename=partyserverlan.cfg + +:://///////////////////////////////////////////////////////////////////// +:://DONE!! WARNING! Don't mess with anything below this line. SEROUSLY!// +:://///////////////////////////////////////////////////////////////////// + +start iw4x.exe -dedicated +set fs_game "%ModFolderName%" +set sv_lanonly "%LANMode%" +set net_port "%GamePort%" +exec %ServerFilename% +set party_enable "1" +set playlistFilename "%PlaylistFilename%" +playlist "%playlistGameMode%" diff --git a/server-configs/IW4ServerConfigs/DedicatedServer.bat b/server-configs/IW4ServerConfigs/DedicatedServer.bat new file mode 100644 index 0000000..648e347 --- /dev/null +++ b/server-configs/IW4ServerConfigs/DedicatedServer.bat @@ -0,0 +1,51 @@ +@echo off +:://///////////////////////////////////////////////////////////////////// +::/// IW4x Dedicated Server Configuration start-up file /// +:://///////////////////////////////////////////////////////////////////// +::// For support visit us on discord discordapp.com/invite/sKeVmR3 // +::// // +::// Your Game Server Port. // +::// Make sure you Port Forward both UDP & TCP // +:://///////////////////////////////////////////////////////////////////// + +set GamePort=28960 + + +:://///////////////////////////////////////////////////////////////////// +::// Offline/Private LAN Party Mode // +::// 0 Disable (Send heartbeats to online serverlist) // +::// 1 Enable (Add to the Local serverlist. Unlisted from Public) // +:://///////////////////////////////////////////////////////////////////// + +set LANMode=0 + + +:://///////////////////////////////////////////////////////////////////// +::// Below edits are optional unless you run multiable servers or mods.// +:://///////////////////////////////////////////////////////////////////// +::// Load a mod on your server // +::// Example: ModfolderName=mods/bots // +::// // +::// UNLOAD a mod on your server // +::// Example: ModfolderName= // +:://///////////////////////////////////////////////////////////////////// + + +set ModFolderName= + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited server.cfg in the "userraw" folder goes here... // +::// This is were you edit your hostname, rcon, inactivity, etc // +::// (Optional) // +:://///////////////////////////////////////////////////////////////////// + + +set ServerFilename=server.cfg + + +:://///////////////////////////////////////////////////////////////////// +:://DONE!! WARNING! Don't mess with anything below this line. SEROUSLY!// +:://///////////////////////////////////////////////////////////////////// + +start iw4x.exe -dedicated +set fs_game "%ModFolderName%" +set sv_lanonly "%LANMode%" +set net_port "%GamePort%" +exec %ServerFilename% +set party_enable "0" +map_rotate diff --git a/server-configs/IW4ServerConfigs/DedicatedServerLAN.bat b/server-configs/IW4ServerConfigs/DedicatedServerLAN.bat new file mode 100644 index 0000000..9b205ca --- /dev/null +++ b/server-configs/IW4ServerConfigs/DedicatedServerLAN.bat @@ -0,0 +1,54 @@ +@echo off +:://///////////////////////////////////////////////////////////////////// +::/// IW4x Dedicated Server Configuration start-up file /// +:://///////////////////////////////////////////////////////////////////// +::// For support visit us on discord discordapp.com/invite/sKeVmR3 // +::// // +::// Your Game Server Port. // +::// Make sure you Port Forward both UDP & TCP // +:://///////////////////////////////////////////////////////////////////// + + +set GamePort=28960 + + +:://///////////////////////////////////////////////////////////////////// +::// Offline/Private LAN Party Mode // +::// 0 Disable (Send heartbeats to online serverlist) // +::// 1 Enable (Add to the Local serverlist. Unlisted from Public) // +:://///////////////////////////////////////////////////////////////////// + + +set LANMode=1 + + +:://///////////////////////////////////////////////////////////////////// +::// Below edits are optional unless you run multiable servers or mods.// +:://///////////////////////////////////////////////////////////////////// +::// Load a mod on your server // +::// Example: ModfolderName=mods/bots // +::// // +::// UNLOAD a mod on your server // +::// Example: ModfolderName= // +:://///////////////////////////////////////////////////////////////////// + + +set ModFolderName= + + +:://///////////////////////////////////////////////////////////////////// +::// Your edited server.cfg in the "userraw" folder goes here... // +::// This is were you edit your hostname, rcon, inactivity, etc // +::// (Optional) // +:://///////////////////////////////////////////////////////////////////// + + +set ServerFilename=serverlan.cfg + + +:://///////////////////////////////////////////////////////////////////// +:://DONE!! WARNING! Don't mess with anything below this line. SEROUSLY!// +:://///////////////////////////////////////////////////////////////////// + + +start iw4x.exe -dedicated +set fs_game "%ModFolderName%" +set sv_lanonly "%LANMode%" +set net_port "%GamePort%" +exec %ServerFilename% +set party_enable "0" +map_rotate diff --git a/server-configs/IW4ServerConfigs/README.md b/server-configs/IW4ServerConfigs/README.md new file mode 100644 index 0000000..78370c6 --- /dev/null +++ b/server-configs/IW4ServerConfigs/README.md @@ -0,0 +1,2 @@ +# IW4x Server Config for Dedicated Servers +This repo contains the IW4 Dedicated Server Config for IW4x diff --git a/server-configs/IW4ServerConfigs/userraw/LANPlaylist.info b/server-configs/IW4ServerConfigs/userraw/LANPlaylist.info new file mode 100644 index 0000000..870cbca --- /dev/null +++ b/server-configs/IW4ServerConfigs/userraw/LANPlaylist.info @@ -0,0 +1,1938 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// IW4x playlists_default.info // +////////////////////////////////////////////////////////////////////////////////////////// +// Deleting gametype scripts may cause broken playlist. Always check and make sure no // +// playlist errors on the console_mp.log once you edit it. // +// // +// --FILE LIMITS-- // +// 32 Gametypes // +// 23 playlists // +////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////// +// Free For All Function Script // +////////////////////////////////////// + +gametype ffa // Function for the playlist rotation. +name english "Free-for-all" // Name of the gametype. +script dm // Real gametype. +rule scr_dm_scorelimit 1500 // Score limit to win the game. +rule scr_dm_timelimit 10 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_dm_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dm_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_dm_promode 0 + +gametype hc_ffa // Function for the playlist rotation. +name english "Hardcore Free-for-all" // Name of the gametype. +script dm // Real gametype. +hardcore +rule scr_dm_scorelimit 1500 // Score limit to win the game. +rule scr_dm_timelimit 10 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_dm_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dm_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_dm_promode 0 +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule set scr_dm_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. + +////////////////////////////////////// +// Team Deathmatch Function Script // +////////////////////////////////////// + +gametype tdm // Function for the playlist rotation. +name english "Team Deathmatch" // Name of the gametype. +name french "Match à mort par équipe" +name italian "Deathmatch a squadre" +name german "Team-Deathmatch" +name spanish "Duelo por equipos" +script war // Real gametype. +teambased +rule scr_thirdperson 0 // 3rd person +rule scr_war_scorelimit 20000 // Score limit to win the game. +rule scr_war_timelimit 17 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_war_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_war_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_war_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_war_promode 0 +rule scr_diehard 0 // Die hard mode. +rule scr_war_roundlimit 1 // Rounds per game. +rule scr_war_winlimit 1 // Amount of wins needed to win a round-based game +rule scr_game_Allowkillcam 1 // Allow Killcam. + +gametype die_tdm // Function for the playlist rotation. +name english "Die-Hard Team Deathmatch" // Name of the gametype. +script war // Real gametype. +teambased +rule scr_war_scorelimit 7500 // Score limit to win the game. +rule scr_war_timelimit 10 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_war_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_war_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_war_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_war_promode 0 +rule scr_thirdperson 0 // 3rd person +rule scr_diehard 1 // Die hard mode. +rule scr_war_roundlimit 1 // Rounds per game. +rule scr_war_winlimit 1 // Amount of wins needed to win a round-based game +rule scr_game_Allowkillcam 1 // Allow Killcam. + +gametype hc_tdm // Function for the playlist rotation. +name english "Hardcore Team Deathmatch" // Name of the gametype. +script war // Real gametype. +teambased +hardcore +rule scr_war_scorelimit 20000 // Score limit to win the game. +rule scr_war_timelimit 17 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_war_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_war_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. + + +////////////////////////////////// +// Domination Function Script // +////////////////////////////////// + +gametype dom // Function for the playlist rotation. +name english "Domination" // Name of the gametype. +script dom // Real gametype. +teambased +rule scr_dom_scorelimit 200 // Score limit to win the game. +rule scr_dom_timelimit 60 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_dom_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dom_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_dom_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_dom_promode 0 +rule scr_dom_roundlimit 1 // Rounds per game +rule scr_dom_winlimit 1 // Amount of wins needed to win a round-based game + +gametype die_dom // Function for the playlist rotation. +name english "Die-Hard Domination" // Name of the gametype. +script dom // Real gametype. +teambased +rule scr_diehard 1 // Die hard mode. +rule scr_dom_scorelimit 200 // Score limit to win the game. +rule scr_dom_timelimit 0 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_dom_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dom_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_dom_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_dom_promode 0 +rule scr_dom_roundlimit 1 // Rounds per game +rule scr_dom_winlimit 1 // Amount of wins needed to win a round-based game + + +gametype hc_dom // Function for the playlist rotation. +name english "Hardcore Domination" // Name of the gametype. +script dom // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_dom_scorelimit 200 // Score limit to win the game. +rule scr_dom_timelimit 0 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_dom_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dom_waverespawndelay 0 // Duration is seconds before the first respawn in each round. +rule scr_dom_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_dom_promode 0 +rule scr_dom_roundlimit 1 // Rounds per game +rule scr_dom_winlimit 1 // Amount of wins needed to win a round-based game +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. + + +////////////////////////////////////// +// Headquarters Function Script // +////////////////////////////////////// + +gametype hq // Function for the playlist rotation. +name english "Headquarters" // Name of the gametype. +script koth // Real gametype. +teambased +rule scr_koth_scorelimit 250 // Score limit to win the game. +rule scr_koth_timelimit 15 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_koth_numlives 0 // Number of lives per game. 0 for unlimited. +rule scr_koth_playerrespawndelay "0" // Players respawn wait. +rule scr_koth_roundlimit 1 // Rounds to be played. +rule scr_koth_Roundswitch 1 // Rounds to be played before teams switch sides. +rule scr_koth_winlimit 1 // Rounds per game +rule scr_koth_waverespawndelay 0 // First respawn delay for each round. +rule koth_promode 0 + +gametype die_hq // Function for the playlist rotation. +name english "Die-Hard Headquarters" // Name of the gametype. +script koth // Real gametype. +teambased +rule scr_diehard 1 // Die hard mode. +rule scr_koth_scorelimit 250 // Score limit to win the game. +rule scr_koth_timelimit 15 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_koth_numlives 0 // Number of lives per game. 0 for unlimited. +rule scr_koth_playerrespawndelay 0 // Players respawn wait. +rule scr_koth_roundlimit 1 // Rounds to be played. +rule scr_koth_Roundswitch 1 // Rounds to be played before teams switch sides. +rule scr_koth_winlimit 1 // Rounds per game +rule scr_koth_waverespawndelay 0 // First respawn delay for each round. +rule koth_promode 0 + +gametype hq_pro // Function for the playlist rotation. +name english "Headquarters Pro" // Name of the gametype. +script koth // Real gametype. +teambased +rule koth_spawntime 30 +rule scr_koth_scorelimit 250 // Score limit to win the game. +rule scr_koth_timelimit 15 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_koth_numlives 0 // Number of lives per game. 0 for unlimited. +rule scr_koth_playerrespawndelay 0 // Players respawn wait. +rule scr_koth_roundlimit 1 // Rounds to be played. +rule scr_koth_Roundswitch 1 // Rounds to be played before teams switch sides. +rule scr_koth_winlimit 1 // Rounds per game +rule scr_koth_waverespawndelay 0 // First respawn delay for each round. +rule koth_promode 0 + +gametype hc_hq // Function for the playlist rotation. +name english "Hardcore Headquarters" // Name of the gametype. +script koth // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_koth_scorelimit 250 // Score limit to win the game. +rule scr_koth_timelimit 10 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_koth_numlives 0 // Number of lives per game. 0 for unlimited. +rule scr_koth_playerrespawndelay 0 // Players respawn wait. +rule scr_koth_roundlimit 1 // Rounds to be played. +rule scr_koth_Roundswitch 1 // Rounds to be played before teams switch sides. +rule scr_koth_winlimit 1 // Rounds per game +rule scr_koth_waverespawndelay 0 // First respawn delay for each round. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule koth_promode 0 + +////////////////////////////////// +// Sabotage Function Script // +////////////////////////////////// + +gametype sab // Function for the playlist rotation. +name english "Sabotage" // Name of the gametype. +script sab // Real gametype. +teambased +rule scr_sab_bombtimer 45 // Duration in seconds the bomb takes to detonate. +rule scr_sab_defusetime 5 // Time taken to defuse the bomb. +rule scr_sab_hotpotato 0 // One bomb that the teams must fight over. One defending and one have to plant at the site. +rule scr_sab_numlives 0 // Number of lives players get. +rule scr_sab_planttime 2.5 // Time taken to plant the bomb. +rule scr_sab_playerrespawndelay 7.5 // Time before respawn. +rule scr_sab_roundlimit 1 // Rounds per game. +rule scr_sab_Roundswitch 1 // Rounds needed to be played before the teams switch sides. +rule scr_sab_scorelimit 0 // Score limit to win the match. +rule scr_sab_timelimit 20 // Duration in minutes the game lasts if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_sab_waverespawndelay 0 // Time delay for first respawn before the game. +rule scr_sab_promode 0 + +gametype die_sab // Function for the playlist rotation. +name english "Die-Hard Sabotage" // Name of the gametype. +script sab // Real gametype. +teambased +rule scr_diehard 1 // Die hard mode. +rule scr_sab_bombtimer 45 // Duration in seconds the bomb takes to detonate. +rule scr_sab_defusetime 5 // Time taken to defuse the bomb. +rule scr_sab_hotpotato 0 // One bomb that the teams must fight over. One defending and one have to plant at the site. +rule scr_sab_numlives 0 // Number of lives players get. +rule scr_sab_planttime 2.5 // Time taken to plant the bomb. +rule scr_sab_playerrespawndelay 7.5 // Time before respawn. +rule scr_sab_roundlimit 1 // Rounds per game. +rule scr_sab_Roundswitch 1 // Rounds needed to be played before the teams switch sides. +rule scr_sab_scorelimit 0 // Score limit to win the match. +rule scr_sab_timelimit 20 // Duration in minutes the game lasts if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_sab_waverespawndelay 0 // Time delay for first respawn before the game. +rule scr_sab_promode 0 + +gametype hc_sab // Function for the playlist rotation. +name english "Hardcore Sabotage" // Name of the gametype. +script sab // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_sab_bombtimer 45 // Duration in seconds the bomb takes to detonate. +rule scr_sab_defusetime 5 // Time taken to defuse the bomb. +rule scr_sab_hotpotato 0 // One bomb that the teams must fight over. One defending and one have to plant at the site. +rule scr_sab_numlives 0 // Number of lives players get. +rule scr_sab_planttime 2.5 // Time taken to plant the bomb. +rule scr_sab_playerrespawndelay 7.5 // Time before respawn. +rule scr_sab_roundlimit 1 // Rounds per game. +rule scr_sab_Roundswitch 1 // Rounds needed to be played before the teams switch sides. +rule scr_sab_scorelimit 0 // Score limit to win the match. +rule scr_sab_timelimit 20 // Duration in minutes the game lasts if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_sab_waverespawndelay 0 // Time delay for first respawn before the game. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_sab_promode 0 + +////////////////////////////////////////// +// Search and Destroy Function Script // +////////////////////////////////////////// + +gametype sd // Function for the playlist rotation. +name english "Search and Destroy" // Name of the gametype. +script sd // Real gametype. +teambased +rule scr_sd_scorelimit 1 // Score limit required to win the game. +rule scr_sd_timelimit 2.5 // Time limit if the score limit isn't reached +rule scr_thirdperson 0 // 3rd person +rule scr_sd_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_sd_waverespawndelay 0 // Delay for first respawn. +rule scr_sd_numlives 1 // Number of lives per player per game. +rule scr_sd_roundlimit 0 // Rounds the game is limited to 0 for unlimited. +rule scr_sd_winlimit 4 // Amount of wins needed to win a round-based game +rule scr_sd_Roundswitch 1 // After X Rounds, switch sides +rule scr_sd_bombtimer 45 // Time taken for the bomb to detonate. +rule scr_sd_defusetime 5 // Time taken to defuse the bomb. +rule scr_sd_multibomb 0 // Allow multiple people to 'have the bomb' +rule scr_sd_planttime 5 +rule scr_sd_promode 0 + +gametype die_sd // Function for the playlist rotation. +name english "Die Hard Search and Destroy" // Name of the gametype. +script sd // Real gametype. +teambased +set scr_diehard 1 // Die Hard +rule scr_sd_scorelimit 1 // Score limit required to win the game. +rule scr_sd_timelimit 2.5 // Time limit if the score limit isn't reached +rule scr_thirdperson 0 // 3rd person +rule scr_sd_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_sd_waverespawndelay 0 // Delay for first respawn. +rule scr_sd_numlives 1 // Number of lives per player per game. +rule scr_sd_roundlimit 0 // Rounds the game is limited to 0 for unlimited. +rule scr_sd_winlimit 4 // Amount of wins needed to win a round-based game +rule scr_sd_Roundswitch 1 // After X Rounds, switch sides +rule scr_sd_bombtimer 45 // Time taken for the bomb to detonate. +rule scr_sd_defusetime 5 // Time taken to defuse the bomb. +rule scr_sd_multibomb 0 // Allow multiple people to 'have the bomb' +rule scr_sd_planttime 5 +rule scr_sd_promode 0 + +gametype hc_sd // Function for the playlist rotation. +name english "Hardcore Search and Destroy" // Name of the gametype. +script sd // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_sd_scorelimit 1 // Score limit required to win the game. +rule scr_sd_timelimit 2.5 // Time limit if the score limit isn't reached +rule scr_thirdperson 0 // 3rd person +rule scr_sd_playerrespawndelay -1 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_sd_waverespawndelay 0 // Delay for first respawn. +rule scr_sd_numlives 1 // Number of lives per player per game. +rule scr_sd_roundlimit 0 // Rounds the game is limited to 0 for unlimited. +rule scr_sd_winlimit 4 // Amount of wins needed to win a round-based game +rule scr_sd_Roundswitch 1 // After X Rounds, switch sides +rule scr_sd_bombtimer 45 // Time taken for the bomb to detonate. +rule scr_sd_defusetime 5 // Time taken to defuse the bomb. +rule scr_sd_multibomb 0 // Allow multiple people to 'have the bomb' +rule scr_sd_planttime 5 +rule scr_sd_promode 0 + +////////////////////////////// +// Arena Function Script // +////////////////////////////// + +gametype arena // Function for the playlist rotation. +name english "Arena" // Name of the gametype. +script arena // Real gametype. +teambased +rule scr_arena_scorelimit 1 // Score limit to win the game. +rule scr_arena_timelimit 2.5 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_arena_numlives 1 // Number of lives per game 0 for unlimited. +rule scr_arena_roundlimit 0 // Rounds to be played. +rule scr_arena_Roundswitch 3 // Rounds before the teams switch sides. +rule scr_arena_winlimit 4 // Rounds per game +rule scr_arena_promode 0 + +gametype die_arena // Function for the playlist rotation. +name english "Die-Hard Arena" // Name of the gametype. +script arena // Real gametype. +teambased +set scr_diehard 1 // Die Hard +rule scr_arena_scorelimit 1 // Score limit to win the game. +rule scr_arena_timelimit 2.5 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_arena_numlives 1 // Number of lives per game 0 for unlimited. +rule scr_arena_roundlimit 0 // Rounds to be played. +rule scr_arena_Roundswitch 3 // Rounds before the teams switch sides. +rule scr_arena_winlimit 4 // Rounds per game +rule scr_arena_promode 0 + +gametype hc_arena // Function for the playlist rotation. +name english "Hardcore Arena" // Name of the gametype. +script arena // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_arena_scorelimit 1 // Score limit to win the game. +rule scr_arena_timelimit 2.5 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_arena_numlives 1 // Number of lives per game 0 for unlimited. +rule scr_arena_roundlimit 0 // Rounds to be played. +rule scr_arena_Roundswitch 3 // Rounds before the teams switch sides. +rule scr_arena_winlimit 4 // Rounds per game +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_arena_promode 0 + +////////////////////////////////// +// Demolition Function Script // +////////////////////////////////// + +gametype dd // Function for the playlist rotation. +name english "Demolition" // Name of the gametype. +script dd // Real gametype. +teambased +rule scr_dd_Roundswitch 1 // Rounds before the teams switch the sides. +rule scr_dd_scorelimit 2 // Score limit needed to win. +rule scr_dd_bombtimer 45 // Time the bomb takes to detonate. +rule scr_dd_defusetime 5 // Time taken to defuse the bomb. +rule scr_dd_extratime 3 +rule scr_dd_numlives 0 // Lives per player 0 for unlimited. +rule scr_dd_planttime 5 // Time it takes to plant a bomb in seconds. +rule scr_dd_roundlimit 3 // Rounds the game is limited to, if there are no winners. +rule scr_dd_timelimit 2.5 // Round time limit. +rule scr_thirdperson 0 // 3rd person +rule scr_dd_playerrespawndelay 0 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dd_promode 0 + +gametype die_dd // Function for the playlist rotation. +name english "Die-hard Demolition" // Name of the gametype. +script dd // Real gametype. +teambased +set scr_diehard 1 // Die Hard +rule scr_dd_Roundswitch 1 // Rounds before the teams switch the sides. +rule scr_dd_scorelimit 2 // Score limit needed to win. +rule scr_dd_bombtimer 45 // Time the bomb takes to detonate. +rule scr_dd_defusetime 5 // Time taken to defuse the bomb. +rule scr_dd_extratime 3 +rule scr_dd_numlives 0 // Lives per player 0 for unlimited. +rule scr_dd_planttime 5 // Time it takes to plant a bomb in seconds. +rule scr_dd_roundlimit 3 // Rounds the game is limited to, if there are no winners. +rule scr_dd_timelimit 2.5 // Round time limit. +rule scr_thirdperson 0 // 3rd person +rule scr_dd_playerrespawndelay 0 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_dd_promode 0 + +gametype hc_dd // Function for the playlist rotation. +name english "Hardcore Demolition" // Name of the gametype. +script dd // Real gametype. +teambased +hardcore +rule scr_team_fftype 1 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_dd_Roundswitch 1 // Rounds before the teams switch the sides. +rule scr_dd_scorelimit 2 // Score limit needed to win. +rule scr_dd_bombtimer 45 // Time the bomb takes to detonate. +rule scr_dd_defusetime 5 // Time taken to defuse the bomb. +rule scr_dd_extratime 3 +rule scr_dd_numlives 0 // Lives per player 0 for unlimited. +rule scr_dd_planttime 5 // Time it takes to plant a bomb in seconds. +rule scr_dd_roundlimit 3 // Rounds the game is limited to, if there are no winners. +rule scr_dd_timelimit 2.5 // Round time limit. +rule scr_thirdperson 0 // 3rd person +rule scr_dd_playerrespawndelay 0 // -1 is no respawn delay, 0 is automatic, > 0 is X seconds +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_dd_promode 0 + +////////////////////////////////////// +// Capture the Flag Function Script // +////////////////////////////////////// + +gametype ctf // Function for the playlist rotation. +name english "Capture the Flag" // Name of the gametype. +script ctf // Real gametype. +teambased +set scr_ctf_scorelimit 3 // Target score before the round ends. +set scr_ctf_timelimit 10 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +set scr_ctf_numlives 0 // Number of lives per player 0 for unlimited. +set scr_ctf_playerrespawndelay 0 // Respawn wait in seconds. +set scr_ctf_roundlimit 1 // How many Rounds match would last. +set scr_ctf_Roundswitch 1 // Rounds before the teams switch sides. +set scr_ctf_waverespawndelay 10 + +gametype hc_ctf // Function for the playlist rotation. +name english "Hardcore Capture the Flag" // Name of the gametype. +script ctf // Real gametype. +teambased +hardcore +rule scr_ctf_scorelimit 3 // Target score before the round ends. +rule scr_ctf_timelimit 10 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_ctf_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_ctf_playerrespawndelay 0 // Respawn wait in seconds. +rule scr_ctf_roundlimit 1 // How many Rounds match would last. +rule scr_ctf_Roundswitch 1 // Rounds before the teams switch sides. +rule scr_ctf_waverespawndelay 10 +rule scr_team_fftype 2 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. + +////////////////////////////////// +// One Flag Function Script // +////////////////////////////////// + +gametype one_flag // Function for the playlist rotation. +name english "One-Flag" // Name of the gametype. +script oneflag // Real gametype. +teambased +rule scr_oneflag_scorelimit 1 // Target score before the round ends. +rule scr_oneflag_timelimit 3 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_oneflag_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_oneflag_playerrespawndelay 0 // Respawn wait in seconds. +rule scr_oneflag_roundlimit 1 // How many Rounds match would last. +rule scr_oneflag_Roundswitch 1 // Rounds before the teams switch sides. +rule scr_ctf_waverespawndelay 0 + +gametype die_oneflag // Function for the playlist rotation. +name english "Die-hard One-Flag" // Name of the gametype. +script oneflag // Real gametype. +teambased +set scr_diehard 1 // Die Hard +rule scr_oneflag_scorelimit 1 // Target score before the round ends. +rule scr_oneflag_timelimit 3 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_oneflag_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_oneflag_playerrespawndelay 0 // Respawn wait in seconds. +rule scr_oneflag_roundlimit 1 // How many Rounds match would last. +rule scr_oneflag_Roundswitch 1 // Rounds before the teams switch sides. +rule scr_ctf_waverespawndelay 0 + +gametype hc_oneflag // Function for the playlist rotation. +name english "Hardcore One-Flag" // Name of the gametype. +script oneflag // Real gametype. +teambased +rule scr_oneflag_scorelimit 1 // Target score before the round ends. +rule scr_oneflag_timelimit 3 // Duration in minutes for the game to end if the score limit isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_oneflag_numlives 0 // Number of lives per player 0 for unlimited. +rule scr_oneflag_playerrespawndelay 0 // Respawn wait in seconds. +rule scr_oneflag_roundlimit 1 // How many Rounds match would last. +rule scr_oneflag_Roundswitch 1 // Rounds before the teams switch sides. +rule scr_team_fftype 2 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_ctf_waverespawndelay 0 + +////////////////////////////////////////////////// +// Global Thermonuclear War Function Script // +////////////////////////////////////////////////// + +gametype nuke // Function for the playlist rotation. +name english "Global Thermonuclear War" // Name of the gametype. +script gtnw // Real gametype. +teambased +rule scr_game_hardpoints 0 // Killstreaks +rule scr_gtnw_scorelimit 101 // Score limit to win the game. +rule scr_gtnw_timelimit 10 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_gtnw_numlives 0 // Number of lives per game 0 for unlimited. +rule scr_gtnw_playerrespawndelay 0 // Players respawn wait. +rule scr_gtnw_roundlimit 1 // Rounds to be played. +rule scr_gtnw_Roundswitch 0 // Rounds before the teams switch sides. +rule scr_gtnw_waverespawndelay 0 // First respawn delay for each round. +rule scr_gtnw_winlimit 1 // Rounds per game +rule scr_gtnw_promode 0 + +gametype die_nuke // Function for the playlist rotation. +name english "Die-Hard Thermonuclear War" // Name of the gametype. +script gtnw // Real gametype. +teambased +set scr_diehard 1 // Die Hard +rule scr_game_hardpoints 0 // Killstreaks +rule scr_gtnw_scorelimit 101 // Score limit to win the game. +rule scr_gtnw_timelimit 10 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_gtnw_numlives 0 // Number of lives per game 0 for unlimited. +rule scr_gtnw_playerrespawndelay 0 // Players respawn wait. +rule scr_gtnw_roundlimit 1 // Rounds to be played. +rule scr_gtnw_Roundswitch 0 // Rounds before the teams switch sides. +rule scr_gtnw_waverespawndelay 0 // First respawn delay for each round. +rule scr_gtnw_winlimit 1 // Rounds per game +rule scr_gtnw_promode 0 + +gametype hc_nuke // Function for the playlist rotation. +name english "Hardcore Thermonuclear War" // Name of the gametype. +script gtnw // Real gametype. +teambased +hardcore +rule scr_game_hardpoints 0 // Killstreaks +rule scr_gtnw_scorelimit 101 // Score limit to win the game. +rule scr_gtnw_timelimit 10 // Duration in minutes the game will continue if the score isn't reached. +rule scr_thirdperson 0 // 3rd person +rule scr_gtnw_numlives 0 // Number of lives per game 0 for unlimited. +rule scr_gtnw_playerrespawndelay 0 // Players respawn wait. +rule scr_gtnw_roundlimit 1 // Rounds to be played. +rule scr_gtnw_Roundswitch 0 // Rounds before the teams switch sides. +rule scr_gtnw_waverespawndelay 0 // First respawn delay for each round. +rule scr_gtnw_winlimit 1 // Rounds per game +rule scr_team_fftype 2 // Enable or Disable Friendly Fire. 1 = on, 2 = reflect, 3 = shared +rule scr_player_maxhealth 30 // Percent of Health players will have on Respawn. +rule scr_player_healthregentime 0 // Time it takes you to recover damage. +rule scr_game_Allowkillcam 1 // Allow Killcam. +rule scr_hardcore 1 // Enable or Disable Hardcore Mode. +rule ui_hud_hardcore 1 // Heads up display. +rule g_hardcore 1 // Enable or Disable Hardcore Mode. +rule scr_gtnw_promode 0 + +////////////////////////////////////////////////// +// MAP LIST // +////////////////////////////////////////////////// +// // +// mp_afghan - Afghan // +// mp_derail - Derail // +// mp_estate - Estate // +// mp_favela - Favela // +// mp_highrise - Highrise // +// mp_invasion - Invasion // +// mp_checkpoint - Karachi // +// mp_quarry - Quarry // +// mp_rundown - Rundown // +// mp_rust - Rust // +// mp_boneyard - Scrapyard // +// mp_nightshift - Skidrow // +// mp_subbase - Sub Base // +// mp_terminal - Terminal // +// mp_underpass - Underpass // +// mp_brecourt - Wasteland // +// // +//// DLC1 STIMULUS /////////////////////////////// +// // +// mp_complex - Bailout // +// mp_crash - Crash // +// mp_overgrown - Overgrown // +// mp_compact - Salvage // +// mp_storm - Storm // +// // +//// DLC2 RESURGENCE ///////////////////////////// +// // +// mp_abandon - Carnival // +// mp_fuel2 - Fuel // +// mp_strike - Strike // +// mp_trailerpark - Trailer Park // +// mp_vacant - Vacant // +// // +//// DLC3 NUKETOWN /////////////////////////////// +// // +// mp_nuked - Nuketown // +// // +/// DLC4 CLASSICS 1 ////////////////////////////// +// // +// mp_cross_fire - Crossfire // +// mp_bloc - Bloc // +// mp_cargoship - Cargoship // +// // +/// DLC5 CLASSICS 2 ////////////////////////////// +// // +// mp_killhouse - Killhouse // +// mp_bog_sh - Bog // +// // +/// DLC6 FREIGHTER /////////////////////////////// +// // +// mp_cargoship_sh - Freighter // +// // +/// DLC7 RESURRECTION //////////////////////////// +// // +// mp_shipment - Shipment // +// mp_shipment_long - Long:Shipment // +// mp_rust_long - Long: Rust // +// mp_firingrange - Firing Range // +// // +/// DLC8 RECYCLED //////////////////////////////// +// // +// mp_storm_spring - Chemical Plant // +// mp_fav_tropical - Tropical: Favela // +// mp_estate_tropical - Tropical: Estate // +// mp_crash_tropical - Tropical: Crash // +// mp_bloc_sh - Forgotten City // +// // +/// SP MAPS to MP //////////////////////////////// +// // +// oilrig - Oilrig // +// iw4_credits - Test map // +// co_hunted - Village // +// // +////////////////////////////////////////////////// +// GAMETYPE SCRIPT FUNCTION // +////////////////////////////////////////////////// +// Gametype Script Function // +// // +// tdm - Team Deathmatch // +// ffa - Free-for-all // +// dom - Domination // +// hq - Headquarters // +// sab - Sabotage // +// sd - Search and Destroy // +// arena - Arena // +// dd - Demolition // +// ctf - Capture the Flag // +// one_flag - One-Flag CTF // +// nuke - Global Thermo-Nuclear War // +// // +// format is // +// ,