Operation: Harsh Doorstop

Operation: Harsh Doorstop

Casualfield
 This topic has been pinned, so it's probably important
SteemKenny  [developer] 5 Apr, 2024 @ 9:13am
Full Description
https://www.youtube.com/watch?v=8BI5KqeXO_E
Special thanks to "Life Of A Gamer" for permission to use his trailer!

Overview

The Casualfield MOD brings enhanced UI and other QOL (quality of life) features into the standard AAS & Skirmish game modes.

Follow the MOD in the OHD Discord!

Features

General


· "Single Player" mode supported (see "Single Player")
· "Multiplayer" mode supported (see "Server Hosting")

HUD


· Game overview showing ticket counts and game time
· Kill feed
· Pop-up kill UI showing who was killed and what weapon was used (+ sound effect)
· White hit marker showing when damage is inflicted (+ sound effect)
· Red hit marker showing when damage causes kill
· No-hit marker to indicate no damage inflicted because player in "Safe Zone" or "Safe Time"
· Suppression camera effect disabled (can be re-enabled in Server Settings)
· Suppression camera movement disabled (can be re-enabled in Server Settings)
· Added periodic equipment validation logic to refresh a missing/corrupt equipment select UI
· Stop health damage effect being applied when no damage is taken (e.g. player health < 100% + friendly fire off + friendly fire)
Main scoreboard
* Sort players by points
* Highlight player row
3D capture point locators
* BluFor/OpFor/Neutral status
* Distance To
* ATTACK/DEFEND textual prompts as appropriate
* BluFor/OpFor player counts when contested
* Animated shape when capturing/loosing
* Circle shape for friendly capture
* Diamond shape for enemy capture
* Rounded rectangle shape for no team capture
* Reduce size as distanceTo increases
* Remove objective & distanceTo UI for "far away" CPs
* Reduce opacity if player "looking at" UI
* Reduce opacity more if player is also aiming
3D player locator tags
* Enemy/Team mate tags do no show without line of sight
* Enemy tags only show if looking "directly at" player
* Associated yellow outline for Squad mates when player is not in line of sight
* "class" icon to indicate most useful ability to team (e.g. ammo, health, RPG, sniper)
* Distance To
* Health bar
* Shrink player dot (not full tag) when in the distance
* Enemy tags can be disabled (see configuration)
* Reduce opacity if player NOT "looking at" UI (i.e. away from centre of view)
* Reduce opacity more if player is also aiming
2D Player character status
* Added player health bar
* Added Team flag icon
* Added Squad name (if in squad)
* Added Squad leader symbol (if in squad & leader)
* Surrounded with border & alpha background to increase visibility
2D Player squad list
* Squad mate names
* Squad mate class icon
* Squad leader icon
2D Player weapon status
* Clip ammo remain/max for relevant weapons
* Currently selected weapon icon
* Change clip counters and icon to red when clip/weapon empty
* Correct weapon UI "clips left" value to be +1 for throwables & bandages (so this value reflects better what player expects)
* Surrounded with border & alpha background to increase visibility
2D capture point UI
* Removed area name (present now in other UI)
* Replaced owning team short-name with flag icon
* Changed item colours to match BluFor/OpFor
* Surrounded with border & alpha background to increase visibility
2D minimap
* Player death marker
* Zoom magnification label
* Added up to x10 zoom level (for larger maps)
* "red-dot" indicators of enemy fire
* Zoom In/Out on LEFT ALT + Mouse Wheel (hopefully button can be configurable in the future)
* Toggle size on LEFT ALT + Middle Mouse Click (hopefully button can be configurable in the future)
* Rotation with player option
* Move minimap up into dead space when capture UI not showing
Compass
* Outlines added to numerics to increase visibility
Event Notifications
* Kill confirmation pop-up
* Revived-by pop-up (currenly disabled - requires reimplemenation)

Swimming Enhancements (*DISABLED* as of r42)


· Low-pass audio filter when under water
· Client bubbles

Death Screen


· Shows name of killer, team and other information such as weapon used
· Enhanced 1st person death camera (fall-to-floor)
· Fade-down screen when downed and fade-out on death
· Fade-out world SFX when downed/killed

Enforcement/Fair Play


· Minimum video settings
· Tamper detection
· Aim assist detection
· Malign actor detection & distruption
· AFK monitoring (will kick AFK players at full server)
· Sauron in-game administration tool

General UI


· Added dynamic font swapping in several UI areas to support more characters for player names

AI


· Reduced number of bots assigned to a squad to 4 (Skirmish) and 6 (AAS)
· Removed default limit for number of AI squads
· Prevent AI from respawning within several seconds (to prevent bug of accumulating "zombie" characters)

Character


· Minor head-bob added when sprinting
· 1st person camera smoothing
· Addition of 1st person "free look" on hold LEFT ALT (hopefully button can be configurable in the future)
· Enable camera roll for 1st person camera for better lean/peak mechanics
· Remember last used fire mode per weapon
· Radial (splash) damage inflicted by grenades & rockets can been reduced
· Added equipment changed logic to ensure last requested weapon by user is eventually selected (i.e. request is not lost, weapon switch will occur)
· Added input latching to ensure requested fire/use happens if blocked because of weapon change/animation (i.e. request is not lost, happens as soon as possible). Applies to throwables/equipment
· Added generic input fire latching (e.g. for coming out of running state). Applies to rifles/pistols
· Added input reload latching (e.g. for coming out of weapon swap)
· On hit, health damage effect will automatically clear after a few seconds if health >= 33%
· On heal, health damage effect will clear - but only if health >= 33%

Deploy Menu


· Added squad auto-join
· Added pop-up information dialog with a player tag icons key
· Added pop-up information dialog to configure mod settings
· Add "Leave Game" button
· No default camera and world sounds on initial deploy menu
· Added deploy menu background when player is dead/not spawned
· Added game mode, MOD version, MOD author and admin status text
· Remember user scroll position in the class selection panel when show/hide deploy menu
· Added server welcome dialog
· Added server information UI with server logo, server region flag, custom server name and custom server description
· Map creators can override background image by putting a specific background image into their packages
· Fall-back loading of background images from Casualfield HTTP repository (if specific JPG available for map on server)
Server Information
* Server name
* Ping
Mini scoreboards
* Sort players by points
* Highlight player row
* Player counts (BluFor/OpFor)
* Remember user scroll position

Map
* Added Zoom In/Out around the cursor
* Added Capture Point letter icon (same as shown on HUD)
* Added Capture Point full description as letter tooltip (makes it easier to bring this information up)
* Added Capture Point radius shading
* Added Player death marker
* Added Zoom magnification label
* Added up to x10 zoom level (for larger maps)
* Added Player auto-track on/off
* Added Player auto-track enagage/disengage
* Added "red-dot" indicators of enemy fire
* Added map banner & map thumbnail to above deploy menu minimap
* Added "leech" POIs for ammo crates, health crates .. (certain factions e.g. Operation: Hyrcania)
* Widget "wobble" reduction when moving map laterally

End-of-Level


· Victory menu with embedded Scoreboard after 5 seconds
· Add "Leave Game" button
· Fade-out world SFX (so background music can be heard)
· "Next round in x ..." prompt (see configuration)
* Set server var "TimeToContinue" equal to "TimeBetweenMatches" (DonkehFramework.DFBaseGameMode), if the latter is used (default value of 33 is otherwise used)
* Set server var "TimeToContinue" to 0 to disable prompt

Settings Dialog


· Server configuration "Enable Enemy Tags" · on/off [Default ON]
· Server configuration "Enable Death Camera" · on/off [Default ON]
· Server configuration "Enable Red-Dot" · on/off [Default ON]
· Server configuration "Allow Minimap" · on/off [Default ON]
· Server configuration "Enable Suppression Effect" · on/off [Default OFF]
· Server configuration "Enable Suppression Movement" · on/off [Default OFF]
· Server configuration "Allow Revive" · on/off [Default ON]
· Server configuration "Allow Kill Feed" · on/off [Default ON]
· Server configuration "Radial Damage Multiplier" · floating-point [Default 1]
· Server configuration "Allow Player Tags" · on/off [Default ON]
· Server configuration "Enable Spawn Protection" · on/off [Default ON]
· Server configuration "Time To Continue" · integer [Default 33]
· Server configuration "No Revive on headshot" · on/off [Default ON]
· Server configuration "Enable Death Information" · on/off [Default ON]
· Server configuration "Disable End Of Level Chat" · on/off [Default OFF]
· Server configuration "Max Allowed Kills Per Minute" · integer [Default 10]
· Server configuration "Weapon Lock Check Grace Minutes" · integer [Default 1]
· Server configuration "Max Allowed Minutes Before AFK" · integer [Default 5]
· Server configuration "Max Warn Kills Per Minute" · integer [Default 2]
· Server configuration "Warn Check Grace Minutes" · integer [Default 5]
· Server configuration "Auto Squad Join" · on/off [Default ON]
· Server configuration "Server Name" · string [Default EMPTY]
· Server configuration "Server Sub-Title" · string [Default EMPTY]
· Server configuration "Server Information" · string [Default EMPTY] (use "¬" character in place of new-line)
· Server configuration "Server Icon URL" · string [Default EMPTY]
· Server configuration "Server Flag Icon URL" · string [Default EMPTY]
· Server configuration "Allow Vehicle Recycle" · on/off [Default ON]
· Server configuration "Disable Client Enforcement" · on/off [Default OFF]
· Server configuration "Allow Construction Friendly Fire" · on/off [Default OFF]
· Server configuration "SLV Default Time Limit" · integer [Default 60]
· Server configuration "SLV Logistics Time Limit" · integer [Default 120]
· Server configuration "SLV Stationary Time Limit" · integer [Default 300]
· Server configuration "SLV Wreck Life Span" · integer [Default 60]

· Client configuration "Show Minimap" · on/off [Default ON]
· Client configuration "Enable Minimap Rotation" · on/off [Default ON]
· Client configuration "Hide Small Minimap" · on/off [Default OFF]
· Client configuration "Remember Fire Mode" · on/off [Default ON]
· Client configuration "Enable Kill Feed" · on/off [Default ON]
· Client configuration "Enable Player Tags" · on/off [Default ON]
· Client configuration "Enable Friendly Player Outlines" · on/off [Default ON]
· Client configuration "Enable Equipment Logic" · on/off [Default ON]
· Client configuration "Enable Camera Smoothing" · on/off [Default ON]
· Client configuration "Enable Enhanced UI" · on/off [Default ON]
· Client configuration "Enable Squad List" · on/off [Default ON]
· Client configuration "Enable Weapon Post Processing" · on/off [Default ON]
· Client configuration "Disable Hit SFX" · on/off [Default OFF]
· Client configuration "Disable Hit Markers" · on/off [Default OFF]

Server Hosting

The game mode key/value pair to run Casualfield within your server launch string is:

Casualfield AAS (derivative of BP_HDGame_AdvanceAndSecure)
game=/CasualCQB/Root/Core/BP_HDGame_AdvanceAndSecure_CQB.BP_HDGame_AdvanceAndSecure_CQB_C

Casualfield Skirmish (derivative of BP_HDGame_Skirmish)
game=/CasualCQB/Root/Core/BP_HDGame_Skirmish_CQB.BP_HDGame_Skirmish_CQB_C

Configuration can be applied by adding ini file configuration settings e.g.

[/casualcqb/root/core/bp_hdgamestate_cqb.bp_hdgamestate_cqb_c]
bEnableEnemyTags=True
bEnableDeathCamera=True
bEnableRedDot=True
bAllowMinimap=True
bEnableSuppressionEffect=False
bEnableSuppressionMovement=False
bAllowRevive=True
bAllowKillFeed=True
RadialDamageMultiplier=1
bAllowPlayerTags=True
bEnableSpawnProtection=True
TimeToContinue=33
bNoReviveOnHeadshot=True
bEnableDeathInformation=True
bDisableEndOfLevelChat=False
MaxAllowedKillsPerMinute=10
WeaponLockCheckGraceMinutes=1
MaxAllowedMinutesBeforeAFK=5
MaxWarnKillsPerMinute=2
WarnCheckGraceMinutes=5
bAllowAutoSquadJoin=True
bAllowVehicleRecycle=True
bDisableClientEnforcement=False
bAllowConstructionFriendlyFire=False
SLV_DefaultTimeLimit=60
SLV_LogisticsTimeLimit=120
SLV_StationaryTimeLimit=300
SLV_WreckLifeSpan=60
ServerName=
ServerSubTitle=
ServerInformation=
ServerIconURL=
ServerFlagIconURL=



[/casualcqb/root/core/bp_hdgame_advanceandsecure_cqb.bp_hdgame_advanceandsecure_cqb_c]
SpawnSafeTime=10



[/casualcqb/root/core/bp_hdgame_skirmish_cqb.bp_hdgame_skirmish_cqb_c]
SpawnSafeTime=10


To the file at:
<SERVERFILES>\HarshDoorstop\Saved\Config\WindowsServer\Game.ini

Single Player

Launch onto any map using the following console command:

e.g. for AAS
open Risala?game=/CasualCQB/Root/Core/BP_HDGame_AdvanceAndSecure_CQB.BP_HDGame_AdvanceAndSecure_CQB_C

e.g. for Skirmish
open District?game=/CasualCQB/Root/Core/BP_HDGame_Skirmish_CQB.BP_HDGame_Skirmish_CQB_C

Configuration can be applied by adding ini file configuration settings e.g.

[/casualcqb/root/core/bp_hdgamestate_cqb.bp_hdgamestate_cqb_c]
bEnableEnemyTags=True
bEnableDeathCamera=True
bEnableRedDot=True
bAllowMinimap=True
bEnableSuppressionEffect=False
bEnableSuppressionMovement=False
bAllowRevive=True
bAllowKillFeed=True
RadialDamageMultiplier=1
bAllowPlayerTags=True
bEnableSpawnProtection=True
TimeToContinue=33
bNoReviveOnHeadshot=True
bEnableDeathInformation=True
bDisableEndOfLevelChat=False
MaxAllowedKillsPerMinute=10
WeaponLockCheckGraceMinutes=1
MaxAllowedMinutesBeforeAFK=5
MaxWarnKillsPerMinute=2
WarnCheckGraceMinutes=5
bAllowAutoSquadJoin=True
bAllowVehicleRecycle=True
bDisableClientEnforcement=False
bAllowConstructionFriendlyFire=False
SLV_DefaultTimeLimit=60
SLV_LogisticsTimeLimit=120
SLV_StationaryTimeLimit=300
SLV_WreckLifeSpan=60
ServerName=
ServerSubTitle=
ServerInformation=
ServerIconURL=
ServerFlagIconURL=



[/casualcqb/root/core/bp_hdgame_advanceandsecure_cqb.bp_hdgame_advanceandsecure_cqb_c]
SpawnSafeTime=10



[/casualcqb/root/core/bp_hdgame_skirmish_cqb.bp_hdgame_skirmish_cqb_c]
SpawnSafeTime=10


To the file at (on Windows):
%LOCALAPPDATA%\HarshDoorstop\Saved\Config\WindowsNoEditor\Game.ini

Client Configuration

Any client configuration is available by using the in-game UI, however the ini file settings are e.g.

[/casualcqb/root/core/clientsettings.clientsettings_c]
bEnableMinimap=True
bEnableMinimapRotation=True
bHideSmallMinimap=False
bRememberFireMode=True
bEnableKillFeed=True
bEnablePlayerTags=True
bEnableFriendlyHighlight=True
bEnableEquipmentLogic=True
bEnableCameraSmoothing=True
bEnableEnhancedUI=True
bEnableSquadList=True
bEnableWeaponPostProcessing=True
bDisableHitSFX=False
bDisableHitMarkers=False


To the file at (on Windows):
%LOCALAPPDATA%\HarshDoorstop\Saved\Config\WindowsNoEditor\GameUserSettings.ini

Thanks!

To all the people that have made constructive comments on this workshop page and to all who have done the same on the OHD Discord.

Also to anyone that has deemed this worth of running up a server with it! (ohai [TUG], Yuppy, Hadgebury, Yoshi_Five, SLY).
Last edited by SteemKenny; 26 Apr @ 2:17am