DISCLAIMER:
The following GameMode is in beta state, this means that it's feature-complete.
Unintended behavior and glitches may still occur during play, but it should work as intended, most of the time.
It has been heavilly optimized and has done away with most, if not all, the hacky/workaround methods.
The code will still be always improved upon, and balance tweaks might happen from time to time, to ensure smooth gameplay.
Objective/Rules:
Game Customization/Variable Explanations:
You can customize the GameMode (to a degree) to fit your needs, even without any blueprint knowledge.
To override any of the GameMode's variables listed above, all you have to do is append the corresponding variable name, along with the desired value, into the GameOptions string.
Here is an example: ?GoalScore=10?TimeLimit=20?StartingHealth=150?StartingAmmo=75
Do note that any variables that have been set incorrectly (e.g. letters where you are supposed to enter a number), set out of their allowed range, or haven't be set at all; will be assigned to their default values. The algorythm has been designed to be case insensitive, so it doesn't matter which capitalization you use.
Known Issues:
Reporting Issues:
To report any issues/bugs that you've found with the GameMode, post in this thread, after making sure of the following:
FAQ:
Roadmap for Upcoming Features and Optimizations:
Credits:
vlad.serbanescu11: Being involved in tight collaboration with me, providing me with crucial fixes (in the earlier versions), latest advancements, and debugging assistance needed for this project.
frez: Providing the art for the GameMode badge that's used by the HUB UI.
Zaccubus: Showcasing the GameMode during the 03/23/2016 UTea Forecast steam.
Download and Cooking Instructions:
You can grab the latest available blueprints/source from here.
The archive also includes a test map, which I was using, to quickly test the game's logic.
To cook it: Extract the above archive into your "\UnrealTournamentEditor\UnrealTournament\Content" folder. From there on out, you can:
A cooked version of the GameMode along with it's MD5 checksum, for those who can't or don't want to cook it, can be found here.
Installation Instructions:
Version History/Information:
10/28/2015: Initial version.
10/29/2015: Hotfix 1.0.1 Changelog.
10/31/2015: Version 1.2 Changelog.
03/08/2016: Version 1.3 Changelog.
06/02/2016: Version 1.4 Changelog.
03/11/2017: Version 1.5 Changelog.
07/22/2017: Version 1.6 Changelog.
07/23/2017: Hotfix 1.6.1 Changelog.
Any sort of footage, testing, suggestions, feedback are more than welcome!
The following GameMode is in beta state, this means that it's feature-complete.
Unintended behavior and glitches may still occur during play, but it should work as intended, most of the time.
It has been heavilly optimized and has done away with most, if not all, the hacky/workaround methods.
The code will still be always improved upon, and balance tweaks might happen from time to time, to ensure smooth gameplay.
Objective/Rules:
- The GameMode is played on DM/TDM Maps. Once launched, weapon bases will be replaced by neutral conduits.
- Scoring is done by fragging other players, and by capturing skulls at any conduit.
- When capturing skulls at a conduit, that conduit will temporarily lock and will not accept any further captures for 12 seconds.
- Skulls have a lifetime of 60 seconds before they get automatically destroyed.
- When players have picked up enemy skulls, skull-shaped particles will start orbiting around their player model. Players carrying many skulls can be easilly identified as high value targets.
- When players get killed, they drop their skull and any other skulls that they might be carrying.
- Players spawn with a designated health and armor amount.
- Players start the round with all of the available arsenal that the map contains, redeemer excluded, at a designated ammo capacity. (for example, if the bio-rifle weapon pickup isn't available in the map, you won't get a bio-rifle)
Game Customization/Variable Explanations:
You can customize the GameMode (to a degree) to fit your needs, even without any blueprint knowledge.
- StartingHealth (Integer, Default=100, Range 100-199): Controls how much health the players receive when they respawn.
- StartingArmor (Integer, Default=6, Range 0-7): Controls what types of armor the players receive when they respawn.
- 0 - No armor (0)
- 1 - Small Armor (20)
- 2 - Thighpads (50)
- 3 - Thighpads + Small Armor (70)
- 4 - Chest (100)
- 5 - Chest + Small Armor (120)
- 6 - Chest + Thighpads (150)
- 7 - Chest + Thighpads + Small Armor (170)
- StartingAmmo (Integer, Default=50, Range 20-100): Controls how much ammo (in percentage) the players receive when they respawn.
To override any of the GameMode's variables listed above, all you have to do is append the corresponding variable name, along with the desired value, into the GameOptions string.
Here is an example: ?GoalScore=10?TimeLimit=20?StartingHealth=150?StartingAmmo=75
Do note that any variables that have been set incorrectly (e.g. letters where you are supposed to enter a number), set out of their allowed range, or haven't be set at all; will be assigned to their default values. The algorythm has been designed to be case insensitive, so it doesn't matter which capitalization you use.
Known Issues:
- If the HUD is turned off via the "showhud" command, the UMG overlay will not be hidden. (Relevant discussion can be found here)
- The skull-shaped particles are not displaying for players that have picked up enemy skulls. (Probably one of the recent builds must've broken the particle-system replication)
Reporting Issues:
To report any issues/bugs that you've found with the GameMode, post in this thread, after making sure of the following:
- You are running the latest version of Unreal Tournament and the latest version of Avarice.
- You do not have any previous versions of Avarice in your "\Documents\UnrealTournament\Saved\Paks\DownloadedPaks" folder. (As it can cause conflicts when installing newer versions of the GameMode)
- You are not playing the GameMode with bots. (Bots are not supported. Their behavior cannot be controlled through blueprints and no logic has been coded for them yet, as a result, they will yield undesirable behavior)
- You have to be able to reproduce the issue in a consistent manner, and also provide a detailed explanation on how you did it. (Please also include your GameOptions string, your mutators/configuration, and any logs that you might have)
- You have read carefully the existing issues, on the first post, and the one you faced is not already listed in it.
FAQ:
- Q: Help! I do not understand how to play.
A: If you have questions on the gameplay mechanics, take a look at the "Objective/Rules" section of this post. A tutorial video which explains how to play, will come at some point. - Q: Can I play this with Instagib?
A: Yes, Instagib is fully supported. All you have to do is include it in the mutator list.
Roadmap for Upcoming Features and Optimizations:
- Include primitive bot support, so bots can at least pickup and capture skulls. (The more skulls carried, the more the urgency to do so)
Credits:
vlad.serbanescu11: Being involved in tight collaboration with me, providing me with crucial fixes (in the earlier versions), latest advancements, and debugging assistance needed for this project.
frez: Providing the art for the GameMode badge that's used by the HUB UI.
Zaccubus: Showcasing the GameMode during the 03/23/2016 UTea Forecast steam.
Download and Cooking Instructions:
You can grab the latest available blueprints/source from here.
The archive also includes a test map, which I was using, to quickly test the game's logic.
To cook it: Extract the above archive into your "\UnrealTournamentEditor\UnrealTournament\Content" folder. From there on out, you can:
- Open any of your maps and select "Avarice" as your GameMode Override setting (located in World Settings), then proceed by hitting Share > Share This Level. This will bundle Avarice inside your Map Package, and can be found under your "\Documents\UnrealTournament\Saved\Paks\MyContent" folder, once cooking completes.
- Open up a terminal, and then navigate to your "\UnrealTournamentEditor\Engine\Build\BatchFiles" folder, then issue the following command:
Code:RunUAT.bat makeUTDLC -DLCName=Avarice -platform=Win64 -version=3525360
WARNING: Do note that if you go with this method, you will have to modify the -version argument to correspond to the network version of the currently available build.
The paths and the commands might also differ, depending on your OS configuration and setup.
A cooked version of the GameMode along with it's MD5 checksum, for those who can't or don't want to cook it, can be found here.
Installation Instructions:
- For single player usage:
Place the cooked package under your "\Documents\UnrealTournament\Saved\Paks" folder, and then launch or restart your game. From there on out, you can:- Start any DM/TDM map from the game, with Avarice as the selected GameMode. (This is faster, but will use the default GameMode configuration)
- Bring up your console and execute an open command.
Here's an example (you can also squeeze in any of the GameMode customization variables here):
Code:open DM-DeckTest?Game=/Game/Avarice/Avarice.Avarice_C?GoalScore=60?TimeLimit=20?MinPlayers=2?MaxPlayers=8?BotFill=8
- For dedicated servers:
Place the cooked package under your "\UnrealTournament\Content\Paks" dedicated server folder, and then edit your server execution line/script accordingly.
Here's an example (your binary may differ, based on your server configuration and setup):
Code:UE4Server-Linux-Test UnrealTournament DM-DeckTest?Game=/Game/Avarice/Avarice.Avarice_C?GoalScore=60?TimeLimit=20?MinPlayers=2?MaxPlayers=8?BotFill=0
- For hub servers:
Place the cooked package under your "\UnrealTournament\Content\Paks" hub server folder, and then edit the corresponding files accordingly:
Add the following lines in your Rules.json
Code:{ "uniqueTag": "Avarice", "categories": [ "DeathMatch" ], "title": "Avarice", "tooltip": "A DM variant of Greed.", "description": "GameMode created by FrostbyteGR.\n<UT.Hub.RulesText_Small>Report any issues on the forums!</>\n\n<UT.Hub.RulesText_Small>TimeLimit : %TimeLimit% Minutes</>\n<UT.Hub.RulesText_Small>GoalScore : %GoalScore% Skulls</>\n<UT.Hub.RulesText_Small>Maximum players : %MaxPlayers%</>", "displayTexture": "Texture2D'/Game/Avarice/GB_AV.GB_AV'", "gameMode": "/Game/Avarice/Avarice.Avarice_C", "requiredPackages": [ "Avarice-WindowsNoEditor" ], "gameOptions": "?TimeLimit=20?GoalScore=30?MustBeReady=1", "minPlayers": 2, "maxPlayers": 10, "bTeamGame": false, "bCompetitiveMatch": false, "mapPrefixes": [ "DM" ], "maxMapsInList": 0, "defaultMap:" "/Game/RestrictedAssets/Maps/WIP/DM-DeckTest", "customMapList": [ "/Game/RestrictedAssets/Maps/WIP/DM-ASDF", "/Game/EpicInternal/Backspace/DM-Backspace", "/Game/EpicInternal/Batrankus/DM-Batrankus", "/Game/RestrictedAssets/Maps/DM-BioTower", "/Game/RestrictedAssets/Maps/WIP/DM-Cannon", "/Game/RestrictedAssets/Maps/DM-Chill", "/Game/RestrictedAssets/Maps/WIP/DM-Deadfall", "/Game/RestrictedAssets/Maps/WIP/DM-DeckTest", "/Game/RestrictedAssets/Maps/WIP/DM-Focus", "/Game/EpicInternal/Lea/DM-Lea", "/Game/RestrictedAssets/Maps/WIP/DM-NickTest1", "/Game/RestrictedAssets/Maps/DM-Outpost23", "/Game/EpicInternal/Salt/DM-Salt", "/Game/RestrictedAssets/Maps/WIP/DM-Solo", "/Game/RestrictedAssets/Maps/WIP/SM-Spacer", "/Game/RestrictedAssets/Maps/WIP/DM-Temple", "/Game/RestrictedAssets/Maps/DM-Underland", "/Game/EpicInternal/Unsaved/DM-Unsaved" ], "optionFlags": 65535, "bHideFromUI": false }
Code:[/Script/UnrealTournament.UTBaseGameMode] RedirectReferences=(PackageName="Avarice-WindowsNoEditor", PackageURLProtocol="<URL_PROTOCOL>", PackageURL="<HTTP_PATH_TO_AVARICE_PACKAGE>", PackageChecksum="<AVARICE_PACKAGE_CHECKSUM>")
- Replace <URL_PROTOCOL> with the value that your fileserver uses, https or http.
- Replace <HTTP_PATH_TO_AVARICE_PACKAGE> with the url that the Avarice.pak will be downloaded from.
- Replace <AVARICE_PACKAGE_CHECKSUM> with the MD5 provided above, or generate your own MD5 checksum if you did the cooking yourself.
NOTE: You can also use the "-run=UTGenerateRedirect" commandlet, to automatically generate the redirect references for you.
NOTE: For further customization of the rulesets and hub configuration in general, please review this thread which was kindly provided by RZE and JoeWilcox.
Version History/Information:
10/28/2015: Initial version.
10/29/2015: Hotfix 1.0.1 Changelog.
10/31/2015: Version 1.2 Changelog.
03/08/2016: Version 1.3 Changelog.
06/02/2016: Version 1.4 Changelog.
03/11/2017: Version 1.5 Changelog.
07/22/2017: Version 1.6 Changelog.
07/23/2017: Hotfix 1.6.1 Changelog.
Any sort of footage, testing, suggestions, feedback are more than welcome!
Comment