Year: 2021

BUILD UPDATE #030: Patch 1031.2

šŸ†” GROUND BRANCH V1031.2
Build ID: 6669244 (Client) / 6669250 (Dedicated Server)
Download size: 119.8 MB (Client) / 60.2 MB (Dedicated Server)
šŸšØ CLEAR YO FILES
We strongly recommend everyone to delete all files located in %LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor (copy-paste this into your File Explorer address bar and hit Enter) to ensure that old files do not conflict with the latest changes and cause input and settings issues.

Patch V1031.2 is now live on the regular GROUND BRANCH SteamĀ® app!

The second patch for release V1031 includes UI/UX and quality-of-life updates, general bug fixes, and a lot of under-the-hood work to better support game modes in the future. Let’s break it down:

Quality of life

Mission Settings (Ops Board)

The Ops Board (the old LED screen where players can change mission parameters and select insertion points in the Ready Room) has been changed from an in-world UI to a pop-up window with the same functionalityā€”except a little easier to use.

Server admins (or any local player in Lone Wolf) now can simply click the right-hand half of the Ops Board to change mission settings in a UI overlay, and then submit all changes in one go:

The mission setting values will continue to be listed on the in-world board until they are replaced with a system that integrates them into the objective descriptions.

Show Remaining Threats

The HUD counter for remaining enemies (in Terrorist Hunt) was moved away from the center of the screen and back to the top-left corner, as well as made optional once again.

Use the Show Remaining Threats mission setting to change how it behaves:

  • The number set in this option represents how many enemies are left before the counter starts displaying (e.g. when set to 8, the counter will start displaying when there are 8 enemies left).
  • Setting it to 0 disables the counter entirely.

Dedicated server spectators

It is now possible to join a server as a spectator without it affecting the max player count.

The maximum amount of spectators is controlled by a MaxSpectators option and is currently capped at 16. While this does mean you could have up to 32 people on one serverā€”16 players, 16 spectatorsā€”remember to talk with your server provider first to get more slots.

Improved spectator experience

  • First-person view should use correct sight lines and look smoother.
  • Better handling of toggle HUD command.
  • Show Player Names and Show Enemy Blips selections are now saved to config files.
  • Minimap rotation should now be correct on all maps.

New watch face

The wristwatch has been updated with improved readability:

The new fonts and adjusted sizes should make the watch face cleaner and easier to read. We’ve also temporarily removed the heartrate (BPM) display until that functionality is actually in place.

Gunfire loop fixed

The dreaded gunfire loop has breathed its last, with Mikson coming to the rescue with the insight Kris needed to find and kill it once and for allā€¦ hopefully. Fingers are crossed.

Net cull distance increased

We doubled the net cull distance from 150 to 300 meters to ensure that, while playing online, characters are visible at a distance to clients. This is particularly relevant on maps with longer sightlines, like 747.

This is a stop-gap method until we get the chance to start using the replication graph system.

Weapon kit validation system

Due to the large number of bugs related to improperly placed sights and firearm attachments in general, a lot of work went into improving the kit validation logic related to them.

āš ļø Oops! All your stuff is gone :(
As a result of the kit validation system, the kit version number has been changed to help prevent the use of existing kits that would no longer be considered valid. This means all existing kits and builds will no longer be loaded, so make sure to rebuild your go-to kits in-game before hopping online! We're very sorry for the inconvenience.

The validation process includes making sure that:

  • Magnifiers (i.e. G33 Magnifier) are placed behind non-magnified optics.
  • Night vision scopes (i.e. AN/PVS-22) are placed in front of magnified optics.
  • Rear (iron) sights have a matching front sight post.
  • A sight is not blocked by another attachment.
  • Only one type of optic can be placed on a sight line (i.e. no optic “conga lines”).
  • Only one iron sight or front sight post can be on a sight line.
  • All attachment mounting points are in contact with a rail.
  • A riser is placed directly on a rail or adapter and not another riser.
  • Attachments are not overlapping each other.

Trying to save a weapon build that fails any of the above will prompt players with what needs fixing, as well as prevent the loadout from applying:

šŸž The system will need fine-tuning to not be overly restrictive with certain combinations. Please let us know if you come across any such configurations that should be both possible and usable, but are not.

New Admin Panel

Due to changes related to mission settings and game rule handling, the Admin Panel (F8) has been updated and received a first pass of the new UI style:

Yes, you can finally unban people and see a list of team-killers!

Whitelist support

To keep a server private, servers admins can now choose to use a whitelist instead of a password.

The system checks the whitelist file periodically, allowing updates to happen just by replacing or updating the file. The file itself in standard CVS format, making it possible to use a common spreadsheet program and export the results.

As with most admin task, it is also possible to update this via Admin Panel while connected as an admin.

Game rules are now stored next to other server options

Along with the mission setting changes, this change removes the need to remember the associated command line, while still allowing them to be changed on the fly or overridden by a map list entry.

Audio

  • Fixed Tanker‘s engine sound occlusion stuttering when moving to upper decks.
  • Replaced outdated tire bullet impact SFX.
  • Fixed ground power unit interaction sounds on 747.
  • Minor under-the-hood optimizaton changes.

Maps

City

  • Removed leftover ladder from subway car that allowed players to mount it.
  • Added glass to alleyway building fronts.
  • Added doors to central square buildings.
  • Added power switches to central square buildings, alleyway buildings and underground station.
  • Added AI cover nodes to cars: bots will now use them for cover.

Paintball

  • Replaced the old texts saying “RED TEAM” and “BLUE TEAM” on each side’s entrance with flags on poles of the respective team’s color.
  • Changed the color of the lights on each side to reflect the teams as well.

General map cleanup

John has also done some minor miscellaneous cleanup (LODs, landscapes, collision, lighting etc.) on most maps.

Miscellaneous

  • Fixed a whole bunch of crashes.
  • Fixed MP5SD burst mode having no sound.
  • Fixed NVG effect being inconsistency across maps.
  • Made drop-down menus stand out better against other menus and text when opened.
  • Mouse sensitivity settings now allow decimal digit values for fine-tuning. You can still click and type a specific value instead of clicking and dragging.
  • New icons for Settings screen and Ready Room player status.

Under-the-hood game mode work

What originally started as changes to ensure mission settings and game mode rules were being read from the command line properly soon expanded to include a lot more.

This culminated in working closely with community member (and GB proto-modder) fatmarrow to fix, update or outright rewrite existing game mode logic. Many of these changes are mentioned in the raw changelog at the end of the post, and more can be gleamed by looking through the existing .lua files for those interested.

A number of these changes will make it into various community guides in time, and a new game mode by fatmarrowā€”Dynamic Take and Secure (DTAS)ā€”is currently being implemented and tested (with tentative release in V1032) thanks to them.

Known issues

  • Sound occlusion in the Ready Room appears to be broken again. We’ll get that patched up as soon as we can.
  • The NVG effect has been reported to be missing the green tint on The Farm (Training map), but not consistently. Please report a bug if you experience this issue on a map!
  • When playing Uplink, the round start dialog may disappear too fast to read.
This has been BUILD UPDATE #030!
We appreciate you taking the time to read our release notes! You can read the raw change log below, and don't forget to let us know about any issues you find that are not listed here. Til the next update!

Change log

Remember when we posted these for every update until they got so massive they would either take too long to compile or not fit in posts anymore? Well, Kris took the time to compile the last batch, and it’s referenced in the notes above, so here it is (may contain strong coder language of the non-C++ kind):

* FIXED AGBGameMode::HandleStartRoundCommand() not working for WaitingForReady
* FIXED alot of rocks and other props that would distance cull to soon
* FIXED bad smoothing groups on M17 slide
* FIXED crash AGBInsertionPoint::CreateAssociatedPlayerStarts() related to attempt to spawn a new player start with an existing name
* FIXED crash caused by using BP_DummyLuaState
* FIXED crash related to sending game messages to destroyed player controller
* FIXED dropped items being removed by resurrect command
* FIXED full auto loop being stuck when changing weapons
* FIXED ground power unit interaction sounds on 747
* FIXED gunshots for MP5SD (there were issues with levels, tails and burst mode were missing)
* FIXED hard coded kit version number in WBP_CharacterEditor (Doh!)
* FIXED issues with Ready Room related to sound occlusion
* FIXED kit not being applied when you first join a team
* FIXED leftover ladder in City subway that was covered by a subway car.
* Was still allowing players to "mount" it and getting them stuck
* FIXED mission settings in Lua being changed from int to string
* FIXED missions overflowing in mission list
* FIXED NVGMultiplier value not being used in maps
* Multiplier is used to fine tune the NVG brightness value per map for consistency
* FIXED occlusion issues with the tanker engine room
* FIXED ops board showing all team ready status on each board regardless of the teams the players were on.
* FIXED player starts that were bad due to SmallTown's terrain fix from previous update (oops)
* FIXED pre recorded radio messages not clearing the VOIP icon once they finished playing while in the RR.
* FIXED ready status not being changed to from DeclaredReady when round ends.
* FIXED Removed ability to exit killhouse on The Farm by rear rollup door * Players not supposed to get to that area
* FIXED sections of outside wall in Run Down not lighting at low sun angles
* FIXED some cars LODing out to early in City
* FIXED stereo base for some of player's local gunshots
* FIXED team restrictions being applied to presets even when there were none.
* FIXED various bugs with lights on Tanker
* Part of this was removing redundant light switches.
There is now only 1 for interior and 1 for exterior lights
* FIXED various geometry/collision bugs on Run Down and Power Station
* FIXED various issues with landscape on Depot that were causing players to get stuck
* FIXED Water footstep effect being played when shouldn't in some areas of Creek map
* FIXED wood floor in center Creek area not having collision
* Reduced occlusion of shooting range
* Made AK Components spawn with each door interaction and remove themselves after a sound is finished instead of keeping them at all times. Significantly lowers the amount of registered AK objects.
* Removed unused RTPCs from distant gunshots
* Replaced old tire impact sound
* Removed unnecessary processes from gunshots
* Adjusted watch LODs to not be so aggressive at short distance
* updated watch face and other misc changes by Scopey from 1031.1
* updated resurrect command to use nav mesh to look for a valid location
* updated dropped item to use nav mesh to look for a valid location
* update zoo keeper CommandList and default admin groups to remove uneeded commands
* all the mission settings are passed via a single 'missionsettings' command now.
* updated WBP_ServerAccess_Manager & WBP_ServerAccess_List_Missions to support "other settings" like the admin maplist.
* updated ops board settings to use "missionsettings ?<setting>=<new setting>" instead of direct command.
* updated RR roster
* removed update hack and starting using ForceLayouPrepass instead
* made sure it supports any team / 255 team id properly
* updated Paintball map
* made sure generic rosters were set to 'any team'.
* removed old text saying Blue Team / Red Team
* add a red and blue flag on a pole to indicate which end is which from a distance.
* replaced red lights at blue side with blue lights. 
* changed red lights on sides to white lights.
* mirrored play area lights.
* imported Bebas Neue font (FF_BebasNeue-Regular)
* edited WBP_WatchApp to use the new font for the time display
* minor tweaks to heart rate text (still hidden)
* Cleaned up and added proper glass to City Alleyway insertion building fronts
* Added cover nodes around vehicles on City map
* AI should now actually use them as cover
* City Map
* Added doors to middle area buildings
* Added light switches for middle buildings, alleyway building and 2 to control subway area
* changed the look of WBP_ComboBox (drop-down menu) and related widgets to not get mixed up visually with other drop-downs when open:
* changed background color to GB smoke green to set it apart from the dark gray/black
* made entry text color lighter to stand out better against new color
* added left padding to text so entries stand out as their own listing
* temporarily removed "drop shadow" (just couldn't get it to look rightā€¦ still want the effect but it's not as necessary anymore)
* tweaked the header for the Session Roster to be more in line with rest of UI and also set it apart from the new team name header
* started tweaking team name header; needs work and Kris' help to set a border color based on team
* WBP_Settings_Gameplay: fixed Default Reticle Brightness setting not displaying the set default value (was missing an entry string); set it to 3
* WBP_Settings_Controls: changed mouse sensitivity spin boxes (all 3 of them) to allow decimal increments
* WBP_SpinBox bar now displays how filled up it is without having to click and drag; also adjusted color slightly to not conflict with new ComboBox entry color
* replaced defining game rules, settings etc using functions with game mode variables instead.
e.g. local gamemode = {
UseReadyRoom = true,
StringTables = { "MyGameMode" }
* renamed FGBGameSetting to FGBMissionSetting and updated affected C++ & Blueprints.
* replaced Lua PostRun() with PreInit() and PostInit()
* PreInit() - allows script do thing before the C++ logic starts readding settings etc.
i.e. find particular actors and update settings based on these before they are replicated via the game state.
* PostInit() - allows script to create objectives and setup various actors based on settings and player teams etc.
* if the game is using rounds, WarmUp will now automatically be callsed *after* PostInit() - there is no need to manually call it anymore.
* ops board mission settings are no longer modifiable
* was always supposed to be a temporary measure and recent additions have made it difficult to maintain and sychronise.
* replaced with a prompt for admins/local player to show a 'mission settings' screen where all settings can be changed and submitted in one go.
* updated game message to include a 'type'
* implemented 'engine' type for usage with remaining opfor count
* implemented default type for everything else.
* updated UGBLuaTimerPackage
* SetTimer params changed:
* TimeHandle - nil or unqiue string, if you wish it to be overrideable etc
* Table - the Lua table holding the function we're about to call (self).
* Function - the actual Lua function (self.FunctioName)
* Rate - when to fire / how often to fire if looping
* Loop - true if this timer should loop until cleared, false if not
* ClearTimer param is now a string, TimeHandle - same as that used in SetTimer.
* updated GBSky
* created UpdateHoursMinutesSeconds() to handle calculating hour, minute & seconds in a generic location and storing the results.
* created GetHoursMinutesSeconds() to return hours, minutes & seconds for use with those actors that find it useful.
* added OnSkyUpdate() that is called every time it sky updates, removing the need for individual actors that rely on sky tick from ticking themselves.
* updated GBSpawnProtectionVolume to change bActive to false and TeamId to 255 (AnyTeam) by default
* created GBPlayerController::ClearAllIgnoreUseInputReasons() to ensure all ignore input reasons can be cleared when entering/leaving RR/play area.
* hooked up missing Unban command in ZooKeeper (oops)
* changed net cull distance from 150m to 300m
* should ensure characters are visible at a distance on larger maps, like 747.
* removed gap between first playerlist entry and the header in the game info screen.
* created GetIntFromOptionsOrCommandLine() to use with both game rules and mission settings
* getting sick of manually doing FParse::Value(FCommandLine::Get() etc all the time.
* exposed AllowDeadChat, AllowUnrestrictedRadio & AllowUnrestrictedVoice game rules
* will use the options string value first, then the command line value.
* added to admin and maplists
* renamed Intel.lua to IntelRetreival.lua and update all IntelRetrieval.mis files to point at new file.
* added support for Spectator Only clients
* updated chat overlay to support icons to show if someone is purely a spectator, rather then dead while spectating
* added some extra emojis for funsies
* made spectator options show player names & enemy blip save their state in the config
* updated AGBGameMode::GetIntFromOptionsOrCommandLine() to add DefaultValue param
* created AGBPlayerState::PreClientTravel() to ensure all delegates are cleared before seamless travel commences.
* hopefully helps fix bugs related to GC/references, highlighted by the WBP_ReadyRoomName one mentioned below
* updated AGBPlayerController::PreClientTravel()
* added call to AGBPlayerState::PreClientTravel() (duh!)
* ensures MyHud is destroyed
* recreated when the game mode changes anyway
* hopefully helps fix bugs related to GC/references, highlighted by the WBP_ReadyRoomName one mentioned below
* moved all UI and HUD related handling in GBPlayerController to GBHud
* updated all affected C++ and Blueprints
* moved trace logic of WBP_ReadyRoomName to GBHud C++
* there was a crash related to GC/references, specifically to do with WBP_ReadyRoomName on the WBP_HUD widget.
This widget is no longer permanent and has zero references - it just fades in/out if in use and is removed when not required.
* updated Binoculars and Rangefinder to make sure input is disabled when unequipped
* was a bug where you could freelook after they were put down and your currently equipped weapon would act like a pair of binoculars
* added group name to BP_LightZone
* grouped light zones turn on/off together (game magic)
* if one of them is destroyed, none of them work.
* adjust position of rooftop extraction point on Intel Retrieval RunDown so it no longer clips through floor.
* updated BP_ExtractionPoint to use a quick trace to position the flare, instead of a fixed position to accomidate for volume overlapping floor.
* updated GBGameModeLuaState & BP_DummLuaState to ensure io and os libs are disabled.
* started updating/cleaning up Admin Panel UI
* updated icons for Settings screen
* updated ReadyRoom Blueprint to take spectator only clients in account when disabled/enabled play area lighting.
* updated GBHUD & BP_HUD
* moved handling of spectator overlay handling to BP_HUD
* moved SpectatorToggleHUD handling
* added OnShowHUDEvent and rigged it up to act like before, as well as prevent hints and chat from being visible.
* updated all widgets that show up on the minimap in some what to all use the same Get2dPosition() function in BP_Minimap_Origin instead of rolling their own each time.
* this takes care of the spectator minimap being rotated by 90 degress in Tanker, among other things.
* updated GBSky
* removed deprecated GetTimeOfDayMinutes()
* updated DelayedInit() logic related to Initial time of day order:
* uses DebugTimeOfDay when in editor without a mission set.
* options string from maplist
* command line
* random value from PossibleDefaultTimesOfDay.
* 1200
* updated BP_WristWatch_Modular and BP_SkyActor due to removal of deprecated GBSky::GetTimeOfDayMinutes().
* updated ZooKeeper to add optional KickBanTime setting (default 5 minutes) to prevent kicked players returning immediately.
* updated FLuaValue::Unref() to add nullptr check when compiled for editor.
* Setup lightbox channels and fixed a few visual bugs in Power Station
* server no longer creates player camera manager
* required customising a few view target related functions that required the player camera.
* improved spectating
* sight components are not correctly setup when spectating start viewing a new character.
* view target control and view rotation is now replicated from server to client separately.
* view of weapon in first person is smoother, but still slightly offset and has jittery yaw
* removed deprecated/unused GBCharacter::GetAimOffsets()
* added missing clamping to stamina and respiration frequency logic
* further tweaked sway & stamina in relation to respiration rate to prevent firearm jitter
* updated AGBGameMode::GetSpawnInfo() to take lua table with Location & Rotation in it
* added various request Lua functions to ai package
* Gamemode bomb object added
* updated GBGameMode
* added call to OnProcessCommand() in AddMissionSettings() to fix hard coded/legacy settings not being set.
* updated RunMissionScript() to add GameModeTable to the 'script' field of the SelfTable used for the "gamemode" package.
* can now get current game mode Lua script using gamemode.script instead of gamemode.GetScript()
* updated GBGameModeLuaState
* moved DebugPrint() from GBLuaGameplayStatics to here so that 'print' in Lua should now appear in log and on screen.
* created GetTimeSeconds() to retrieve World->GetTimeSeconds()
* updated BP_BigBomb
* created and implemented WBP_Bomb_LedScreen - shows time, defuse progress & flashes when defused.
* added SetDetonationTime(), SetDefused() & SetActive(), all callable via Lua.
* created Bomb.lua to handle logic for ServerUseTimer(), ServerEndUse() & OnReset() 
* created example Defuse.lua and Defuse.mis for SmallTown to use as example of its usage.
* changed count down and light colours from red to blue.
* updated WBP_MissionSettings_Entry to adjust setting value when using a combo box instead of slider (oops)
* updated BP_Door_Swinging to stop it attempting to play sounds etc on dedicated servers
* updated GBPlayerController
* updated GetViewTarget() to remove IsValidCheck() from ServerViewTarget, which should always be valid.
* updated SetViewTarget() to ensure view target is set to the player controller itself if the new view target is null or the player state
* updated AGBBulletProjectile::IsNetRelevantFor() to skip replication for intigator & instigator controller.
* updated GameMode.csv to update gamemode_intel to gamemode_intelretrieval & add gamemode_defuse.
* updated WBP_MissionList to fix gap in search bar
* updated WBP_ServerBrowser
* added filter to hide wraong versions
* added search bar from WBP_MissionList
* updated Rig/TerroristHunt.mis 
* created dummy Rig/Deathmatch.mis
* created ResetActors admin command
* update BP_BigBomb to prevent it displaying interaction prompt based on TeamId 
* began updating game rule handling.
* moved all UI based game rule logic / graphics to WBP_GameRules
* created new GameRules admin command and removed EnableCheatas, AddGameRule & RemoveGameRule, since it handles all of them.
* updated GBPlayerController
* made god, notaget & nosway commands use ClientTeamMessage() so they let the player know the cheat is enabled/disabled when in multiplayer.
* updated ServerAdmin() to work even in standalone editor for testing purposes.
* cleaned out GBFunctionLibarary
* started out just updating Blueprint config functions, realised how bad it was in there.
Required lots of minor Blueprint changes, swapping from GB specific function to native UE4 ones.
Will help with compile times, Blueprint stability etc due to reduced number of functions and duplicates.
* wrapped debug related variables/functions in GBAIController with a WITH_EDITOR define.
* wrapped WITH_EDITOR define around SetDEbugAIAim() call in GBHUD
* cleaned up Bluperints and other assets based on errors / warnings created by mock build
* added ReloadMissionScript admin command to make editing missions easier.
* replaced GameModeTable.Unref() call with GameModeTable = FLuaValie();
* updated ZooKeeper
* added game rule handling to ZKServer to they can be saved directly to the Server.ini instead of having to remember commandline all the time.
e.g. SpectatorFreecam, UseTeamRestrictions
* updated all affected C++ and Blueprints
* improved admin and vote related commands
* updated admin and vote UI to match changes (and then some).
* implemented UGBGameInstance::HandleOpenCommand() override to look for "Listen" option and make sure ZooKeeper is init'd if detected.
* replaced usage of UseReadyRoom & UseRounds game rules with bUseReadyRoom & bIsRoundBased on GBGameState, since they should not be changed at runtime.
* updated all affected C++ and Blueprints
* added mission settings as a voteable command
* added check against 'restricted' settings in case someone tries to set time limit etc.
* Reworked game mode flag material to allow tecture and color changes with a MaterialInstance
* removed out of date WBP_AdminList_Entry
* updated BP_Firearm_Master
* added FullAutoPlayingID to track PlayingID passed out when full auto loop starts.
* added check for FullAutoPlayingID > 0 in OnStopFiring() and attempts to use StopFiring sound
* if there is no AK component to use, it will just call ExecuteActionOnPlayingID with the action type 'stop' and transition duration of 500ms/
* updated GBFirearm
* replaced usage of GBInstigator->GetFootstepComp() in updated GetGunShotComp()/GetInteractComp() with cacched pointers
* updated OnBeingEquipped() to cache GBInstigator->GetFootstepComp() to AkGunShotComponent & AkInteractComponent.
* removed need for OldRecoilCount.
* updated EndShot() to set call RecoilCountUpdated(0) if there is GBInstigator == nullptr
* replaced duplicated calls to OnStopFiringEvent(), Barrel->DeActivateFlash() etc with calls to EndShot() instead.
* added OnStopVoiceEvent() to GBCharacter
* upodated BP_Character
* updated OnPlayVoiceEvent() to VoicePlayingID and add callback to it when the voice has finished playing.
* implemented OnStopVoiceEvent() to call ExecuteActionOnPlayingID() to stop any voice that is playing.
* This will make voice lines etc end on death without cutting off other sounds, like gun shot trails
* refreshed BP_M1014 & BP_SDASS_Martial OnFiringEvent() to prevent build error.
* updated WBP_QuickPlayerAdmin to bring it inline with recent admin command changes/improvements related to kick & ban commands.
* cleaned up text chat style
* replaced RR locker row icon with house-with-cog icon; not happy with it but it reads a little better than the lockers (looked too much like servers)
* started updating appearance of Ops Board "Mission Settings" pop-up
* changed display name for the MK48 "magazine" to something more accurate
* updated GBFirearm
* added bForce param to UpdateSpatialAudioVolume(), allowing tags to be force applied whether they changed or not.
* replaced GetGunShotComp()->Stop() calls in BeginDestroy() with EndShot() etc like other functions (oops)
* updated OnBeingDropped() to clear the cached AkComponents after calling EndShot().
* removed erroneous timer clearing in AGBFirearm::BeginDestroy().
* updated WBP_Button_Preset
* added check to prevent applying items restricted due to skin etc.
* added diaglogue popup with list of items restricted due to skin etc.
* updated GBPlayerController::InitLoadout() to fail when trying to load a loadout with items restricted due to skin etc.
* removed GBFirearm::BeginDestroy()
* added validation check to WBP_ItemEditor to preven saving kits with non-functional sight combinations.
* updated C++ to improve validation based on similar logic used in WBP_ItemEditor
* created new, brute force methods for determining valid rail slots
* does a better job at preventing you placing a sight too far back or forward.
* updated AGBItem::OnBeingEquipped() to change setting all UPrimitiveComponents to all UMeshComponents
* this fixes issues with the barrle sound sphere thingy no longer overlapping sound volumes and makes Mikson a happy chappy.
* hooked up missing references in WBP_ServerAcces_List_Missions to fix admin & vote ChangeMap tab
* updated GBGameMode to clear all lua timers and nil the game mode table when the time limit is reached, preventing Lua timers being started and possibly firing while the world is null.
* updated WBP_Config_XXX to ensure they use their Default values if there are none in the config.
* fixes gamma etc suddenly becoming zero or some other weird value.
* Removed Spline Occlusion from Tanker Ship Engine
* Decreased Tanker Ship Engine falloff distance
* added white list support to ZooKeeper
* reads PlayerName & UniqueId (SteamId) from WhiteList.csv
* rejects anyone that logs in if they are not on the list, regardless of password.
* will automatically import new values if the file has changed when a new player logs in and it has been at least 1 minute since last import.
* updated admin UI
* properly shows/hide tabs based on admin commands
* added white list tab
* made sure own player state was skipped in admin list.
* cleaned and improved sight and attachment validation
* removes duplicated sights / front sight posts on the same sight line.
* ensures iron sights always have a corresponding front sight post
* detects firearm front sight post blocking low sights
* no longerallows riser stacking
* created GBItem::PlaceAt() for use with gamemode flag, laptop etc.
* first pass at becoming FM's bitch
* changed bWantsToEnterPlayArea into a Ready status enum
* updated ops board to add a ReadyUp button in place of join/minimap when round based without insertion points
* updated GBGameMode give Lua a chance to override start, end and restart round.
* simplified GetPlayerList() - removed lives, wants to play check etc
* created GetLivingPlayerList()
* created GBItem::DenyDrop()
* updated BP_CarriedGameModeFlag to attempt to place itself directly under the player before reverting to previous methods when Place() is called.
* added GetReadyStatus & SetReadyStatus to Lua player library
* changed KitVersion from 8 to 9 to ensure everyone has to remake *valid* kits.
* hooked up upper & lower game messages for FM
* further improved kit validation inrelation to iron sights
* changed ValidateDecodedItem() to output a reason for kit failer.
* changed AGBPlayerController::SetLoadout() to abort on kit validation failure
* updated default kit versions numbers
* updated AI kit version from 8 to 9.
* updated BP_CarriedGameModeFlag
* removes placement helper if auto-placed before manually placed.
* automatically switches to previously equipped items upon being placed.
* moved GetValidatedSpawnLocation() from GBLuaGameModePackage to GBLuaGameplayStaticsPackage.
* removed SpawnItem from GBLuaPlayerPackage and created similar PlaceItemAt in GBLuaGameplayStaticsPackage
* FLuaValue UGBLuaGameplayStaticsPackage::PlaceItemAt(FLuaValue ItemClass, FLuaValue Location, FLuaValue Rotation)
Rotation = table with P/Y/R or Pitch/Yaw/Roll keys.
* updated GBDroppedItem
* InitAsPlaced() now ensures replicated movement is false..
* OnRep_AssociatedItem() now only enables physics if replicated movement was deferred or it detects replicated physics were enabled.
This fixes issue of flag falling over or changing location etc on clients.
* moved GBCharacter::ClientSwitchItems() logic to GBPlayerController to ensure proper replication.
* updated ZooKeeper module
* updated UGBLuaTimerPackage
* renamed TimerMap to TimerHandlMap.
* removed attempt to clean up timehandle upon its use entirely - can't see it hurting anything.
Will be replaced or cleared next time a timer with the same handle is set anyway.
* Moved Chemlight from hold back to Inventory
* Added green chemlight to top of gamemode flag
* Temp placement for now 
* Adjusted gamemode flag to be brighter and removed chemlight
* moved all firearm validation code to C++
* updated WPB_ItemEditor to take convert the failure message into a pretty version.
* updated overlap validation to ignore items that are not attached to the current firearm
* seems overlap check would detect items that were had just spawn/were being spawned by other kits being validation and detect those!
* ensured pre/post modifier sights only become valid when the trace a suitable sight, rather then defaulting to being valid.
* Reworked gamemode flagpole to be lighter in color and have a bit of emissiveness
* rearranged logic in GBPlayerController::SetLoadout() related to validation to ensure child items are able to be queried by the collision system.
* fixes the issues discovered in testing where the G33 failed to detect being placed behind an appropriate reddot etc.
* renamed UGBLuaGameModePackage::GetLivingPlayerList to GetPlayerListByLives(TeamId, MinLive, ExcludeBots)
* creates a list of players wtih lives >= min lives that have declared ready and are in the play area.
* sorts them by lives, highest to lowest
* updated affected Lua.
Remember - a player with lives may not have a character.
Do something like PlayerCharacter ~= nil before attempting to use it.
* removed debug logic in BP_Laptop_Usable causing it not to spawn properly (oops)
* created UZKSebver::HasWhiteList()
* updated GBGameSession
* ignores password when white list is in use.
* adds wl0/wl1 to steam tags for use in server browswer
* updated WBP_ServerBrowser
* shows servers as passworded when if they use a white list.
* change password overlays to use generic diaglogues
* added dialogue when attempting to join whitelisted server
* created UGBFunctionLibrary::GetConfigFilename() and updated all config related functions to use it.
* updated WBP_Settings_XXX to use UGBFunctionLibrary::Config_Save(TEXT("PlayerSettings")) instead of calling SaveSettings().
* changed UGBPlayerSettings::SaveSettings() to a non-Blueprint exposed function.
* Uplink fixes from FM
- I think it's ok if AutoSwap is turned off, so maybe stick that in the notes
- don't think it's a big fix - I could probably find it myself
- ok, Uplink.Lua, line 183 - gamemode.gamemode is causing it to throw an error @Kris
- line 188 - self.PlayerTeams.BluFor.TeamID -> self.DefendingTeam.TeamId
- the laptop setup code only seems to be called on 2nd and subsequent rounds, will try fix that too
- lines 194,195 - missing self. - I think that's going to fix it"
* updated Defuse.lua based on fixes to Uplink.lua (oops)
* ensured self hosted games default to internet
* added team restriction and requirement checks to AGBPlayerController::SetLoadout()
* paranoid, but it should help prevent anyone accidently ending up with invisible arms/legs etc.
* changed SaveConfig("PlayerSetings") to SaveConfig("PlayerSettings) in WBP_Settings_Audio/Gameplay/Video
* yes, a single missing 't'.
* disabled a lot of superfluous and seemingly superfluous plugins and recompiled
* hopefully nothing we actually needed.
* disabling more plugins
* updated WBP_ChatOverlay to create ForceClose event to ensure things are cleanly closes when HUD is hidden.
* updated BP_HUD
* stopped WBP_SpectatorOverlay from being removed when HideGameRelated event is called.
* updated OnShowHUD event to improve the way it shows/hides related widgets.
* updated WBP_SpectatorOverlay
* removed need for OnClose() by making ForceClose() event remove player names itself.
* updated ForceClose() to ensure spectator related delegates are unbound
* updated BP_PlayerController::ShowTransition event to make show transition screen is over the top of spectator and other overlays
* updated GBPlayerController
* implemented BeginSpectatingState() override to call GBHUD->ShowMenuEvent(SpectatorOverlay)
* updated EndSpectatingState(), adding call GBHUD->HideMenuEvent(SpectatorOverlay) and rigged itup to call GBHUD->ShowHUD() only if GBHUD->bShowHUD was false.
* updated SpectatorToggleHUD() to call MyHUD->ShowHUD() directly, removing need for AGBHUD::SpectatorToggleHUD() entirely.
* updated HideTransitionScreens() to ensure spectator overlay is show if player is only ever going to be a spectator.
* updated all affected Blueprints, removing unncesscary calls to show/hide spectator overlay.
* updated Uplink/Defuse.lua to only perform autoswap at the end of PostRoundWait.

MicroProse is now the publisher for GROUND BRANCH!

As we get the next hotfix patch ready and continue to work on upcoming release V1032, we make a little pause in development for a major announcement: BlackFoot Studios has officially partnered with MicroProse, now the actual publisher for GROUND BRANCH!

If this logo doesn’t give you a warm, fuzzy feeling, we salute your enviable youth

Having left a very big mark in the industry, the MicroProse name is no stranger to fans of strategy and simulationā€”or, in fact, just about any player old enough to remember many of the titles published and developed by the company throughout most of the ’80s and ’90s: from Civilization, Pirates! and X-COM all the way to its myriad combat flight sims like Falcon 4.0.

Founded by retired USAF pilot Bill Stealey and programmer (and now legendary developer) Sid Meier, the company has gone through several acquisitions and changes before being purchased and revived in 2019ā€”almost 20 years after it was last associated with a gameā€”by David Lagettie, owner of TitanIM. You can learn more about MicroProse’s history and revival in this article.

Here is the announcement trailer their team put together with some footage and assistance from our community manager Prowlaz and his UN1T team, as well as creators Karmakut, Controlled Pairs and Ceb Cin. Soundtrack is by community member mrbombastic:

What does this mean for GROUND BRANCH?

Only good things. We’ve had plenty of rough patches over the years, and MicroProse brings us some much-needed stability as development continues in earnest towards v1.0. The MicroProse crew will also be handling a good chunk of the marketing and helping us extend our reach not only to their established community, but also to new audiences out there. That means expanding the player base, generating more funding for development, and getting to where we want to be a little faster.

Is BlackFoot Studios selling out?

Not at all. Even if we had not retained complete creative freedom and full rights to the GROUND BRANCH franchiseā€”which we have!ā€”MicroProse has been taking a pretty hands-off approach to all titles under its brand, ensuring not only the integrity of the developers’ core vision, but also of the company’s legacy:

Sid [Meier] always said you need to make games with limited information, that are time critical with significant outcomes, and reward players that made the right decisions. [ā€¦] It’s real enough that you feel you actually accomplish something, and not because you got a power-up.

ā€”Bill Stealey (co-founder, former CEO, and currently a consultant for MicroProse) for GamesIndustry.biz

As you can tell from the quote above, GROUND BRANCH fits right into MicroProse’s ecosystem.

Sneak peek: upcoming maps

As part of the partnership announcement, MicroProse has uploaded a whole bunch of brand-new screenshots to their website, including many from a still unannounced map. Below is just a little teaseā€”you can check out the full gallery here.

YESā€¦ HA HA HAā€¦ YES! (Click image for the full gallery)

MicroProse Community

If you’re an old fan of MicroProse or just a big strategy or simulation buff, be sure to join their growing Discord community right here!

To learn more about all of the games currently under the MicroProse brand, follow this link.

BUILD UPDATE #029: Patch 1031.1

šŸ†” GROUND BRANCH V1031.1
Build ID: 6402952 (Client) / 6402972 (Dedicated Server)
Download size: ā‰ˆ340 MB (Client) / 32 MB (Dedicated Server)
šŸšØ CLEAR YO FILES
We strongly recommend everyone to delete all files located in %LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor (copy-paste this into your File Explorer address bar and hit Enter) to ensure that old files do not conflict with the latest changes and cause input and settings issues.

V1031.1 is a patch to fix some of V1031’s more pressing issues, along with some general cleanup. Here are all the changes, fixes and updates:

Performance and audio

Kris and Mikson worked together to tackle the big performance drops caused by higher bot counts running on non-dedicated server sessions, i.e. Lone Wolf and self-hosted games.

Although the difference might not be as drastic across all setupsā€”your mileage may vary depending on your system specs, in-game settings and bot countā€”our playtesters saw framerate gains in the10ā€“20 FPS range when running with 30 bots, compared to before the fix.

Keep in mind that optimizations will be an ongoing process and you’ll still inevitably experience lower performance when playing against higher bot counts, especially when going beyond 30.

Here’s the list of what was done to achieve the improvements straight from Mik:

  • Reduced the number of sound sources per character.
  • Sounds below -60 dB are not played or are sent to virtual voice.
  • Limited the maximum number of simultaneous voices to 128.
  • Added different priority values to a few categories of sound effects to help the sound engine determine which voices should be killed or sent to virtual when the limit is reached.
If you notice sounds cutting off, let us know via the in-game bug reporter (Esc > Report Bug button in the top bar). It's most likely due to the limit and priorities mentioned above.
Other audio changes
  • New MK18 Mod 1 and M4A1 Block II unsuppressed gunshots and bolt movement sounds (work in progress).
šŸžĀ Known issue: Occlusion for the Tanker's engine sound is currently bugged. As players move up the floors, the noise may fade out, then suddenly go loud again for a second, and then continue to fade.

General

  • Fixed non-magnified optics allowing players to see through smoke.
  • Fixed not being able to draw weapons on The Farm (Training map).
  • Another update, another shot at fixing the item switch bug (the one that breaks items, makes characters hold rifles like pistols etc.) šŸ¤ž
  • Fixed Training game mode logic attempting to send players to non-existent Ready Room.
  • Fixed crash related to “dummy character” used for loadout validation on clients.
  • Fixed crash related to movie player plugin and loading screens.
  • Fixed timers firing after related game mode script is no longer in use, causing log spam.

Game modes and laptops

The laptop objective present in both Intel Retrieval and Uplink has received a few updates:

  • Blue battery indicator LED lights and an animated screensaver were added to make it easier to locate.
  • In Intel Retrieval, once the correct laptop is successfully searched, it will fold down before players can deliberately pick it up.
  • Still in Intel Retrieval: unless picked up, the folded-down laptop will now display flashing blue lights to make it easier to locate if dropped.
šŸžĀ Known issue: If players are killed while carrying the laptop and then resurrected (using the admin command), the laptop will respawn at its original location.

Level art/design

  • Fixed incorrect decals on the bay dividers of the indoor shooting range (The Farm).
  • Rotated shoothouse target that was in an awkward, hard-to-hit angle when facing the nearby doorway from the adjacent room.
  • Added collision to The Farm’s aircraft shoothouse stairway to prevent players from getting into plane side.
  • Fixed bug in Run Down where breaching charges would be placed on the wrong side of basement doors.
  • Also made Run Down’s staircase collision volumes into ramps, like it is on other maps. No more bumpy stair climbing.
  • Cleaned up a lot of collision in Run Down: should make walking through the level much smoother for both players and AI.
  • Moved Depot‘s Train Bridge insertion point from down on the road (where players spawned in exposed) up to the top of the hill.
  • Cleaned up some landscape/navmesh issues, collisions and AI cover nodes on Depot.
  • Fixed missing collision on the 2nd floor ceiling of City‘s central building.
  • Fixed outside areas at the Tanker‘s rear section where lighting would change for no reason as you moved.
  • Expanded bound for base architecture meshes on Run Down, Small Town and The Farm to decrease pop-in due to occlusion culling (seeing white when turning corners)
  • Finally cleaned up Ready Room’s wall texture UVs so the bricks are properly aligned.
  • Added power switches to the tunnel area in Power Station.
  • Fixed some general collision bugs on 747 and Tanker.
  • Fixed grass coming through some of Depot’s warehouse floors.

UI and settings

  • Players can now set game mode/mission parameters straight from the Lone Wolf, Host Game, Admin and Vote screens. They can still be changed on the Ops Board inside the Ready Room, of course.
  • Hid the Co-Op/PvP/Team filters from the Host Game screen, as they were mostly redundant.
  • Updated Session Roster listing to sort players by name and team when appropriate.
  • Fixed VOIP icon and name in the Session Roster pulsing even when the associated player is not talking.
  • Removed framerate limit under Settings > Video. Be advised that higher FPS limits were known to cause rubberbanding/teleporting/lagging in the past.
  • Added warning prompt when applying Video settings with a horizontal FOV greater than 90Ā°. Can be set to not display again.
  • Spectators can now use VOIP with active players if the server-side option is enabled. It is disabled by default in most game modes, with the exception of Training.
  • Also added text to VOIP HUD to inform spectators whether active players can hear them speak in the server.
  • The Invite Friends prompt (displayed when a self-hosted server is launched) now has a checkbox to not show again.
  • Fixed Ops Board parameters not updating properly for some players online.
  • Added remaining OPFOR notification for Terrorist Hunt when 10 or less enemies are remaining.
  • Added enemy blips back to Spectator minimap based on previous setup.
  • Updated Server Browser list to hopefully prevent entries from displaying <MISSING STRING TABLE TEXT> under columns Map and Game Mode.
  • Fixed server details not being updated and showing wrong map, player count etc.
  • Fixed controller icons appearing on keyboard/mouse keybinds list and vice-versa.

Admin and servers

  • Fixed game mode settings added by script not respecting those set in command line.
  • Removed .ini setting that prevented creating and joining a dedicated server on the same computer.
  • Simplified dedicated server command line to support launching servers without a pre-defined map list. Servers will simply load a default and allow admins to setup a map list and other options once connected.
šŸ’” Need dedicated server help?
Kris has updated his guide with all of the recent stuff, so be sure to check it out if you're trying to set up your own dedicated server: Dedicated Server Help (Steam Community ā€¢ Guides)

Controller input

Still very much a work in progress:

  • General cleanup of the controller binding logic.
  • Started updating the default controller binds to be more in line with modern FPS conventions.
This has been BUILD UPDATE #029!
Thanks for playing V1031 and taking the time to read our release notes! We have a long way to go, but we hope this patch makes everyone's experience a little smoother. Keep the feedback coming and we'll keep fixing what we can. See you on the next one!

BUILD UPDATE #028: V1031 now available! Be advised: price is going up soon!

šŸ†” GROUND BRANCH V1031
Build ID: 6338489 (Client) / 6338525 (Dedicated Server)
Download size: 3 GB (Client) / 447 MB (Dedicated Server)
šŸšØ CLEAR YO FILES
We strongly recommend everyone to delete all files located in %LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor (copy-paste this into your File Explorer address bar and hit Enter) to ensure that old files do not conflict with the latest changes and cause input and settings issues.

After about 20 days of testing on the GROUND BRANCH CTE app, Version 1031 is now stable enough for the main branch of the game, and our little community can reunite and enjoy all the latest content and updates together, at last.

A lot has happened since V1030ā€”from programmer Kris being knocked out by meds to industry legend John Romero tweeting about us out of nowhere (holy sh*t, by the way)ā€”and in this period GROUND BRANCH has become a better experience than it was in almost every way: it has better audio and visual effects, a nicer-looking and more user-friendly interface, improved controls and options, 2 new game modes, a new CQB map and a brand-new consolidated training area, and even a few updated assets.

Although V1031 isn’t without issues (such is the nature of Early Access, though we’ll be sure to patch those as soon as we can), we had to move on and transition the project over to V1032 so that Mike (Munk, animator, of Killing Floor and Rising Storm 2 fame) can transition from working on a separate environment to actually putting all those new animations into the game with Kris’ assistance. We’ll be mentioning all known left-over issues in this build in the release notes below.

šŸ’š Before we get on with it, we'd like to thank all players who took time off their gaming to test V1031 on CTE, report the issues they found, and provide valuable feedback. We love you and we appreciate you.

Oh, and just one more thing:

Price is going up this Monday (March 8th) at 12pm EST!

As announced just a little over 4 months ago in Build Update #027, GROUND BRANCH was due a 10 USD price increase with the release of V1031. The game has come a long way since it was released on SteamĀ® Early Access in August 2018, and with V1031 now live, we feel like it has earned the less modest price tag of 29.99 USD for all the reasons we are quoting here from the original announcement:

  • GROUND BRANCH has been in Early Access for over 2 years with no price change, and it is now a lot further along than it was in the beginning. With V1031, it will be even more so.
  • We genuinely feel thatā€”despite the relatively slow development and current lack of polishā€”we are offering fans of the hardcore tactical shooter genre something unique that no other game out there is offering.
  • The game has been sitting at a ā€œVery Positiveā€ user score for both recent and all-time reviews, with an approval rating of around 85% . As such, we believe that all the improvements that are planned for the next main update will more than justify the new price.
The new price of 29.99 USD will go live this Monday, March 8th, at 12pm EST (5pm GMT), with regional pricing adjusted accordingly. If you still have friends on the fence, you have a couple days to pull them over to our side!

Build highlights

New user interface

The UI has received a considerable art, style and user experience pass. Some screens, prompts, dialogs and other smaller UI elements have yet to get a makeover, but we’ve gotten to most of them by now.

Here’s what’s new:

Main Menu

The first menu you’ll see doesn’t look a whole lot different, but you may notice a few minor style and formatting changes, along with the new stripped-down GROUND BRANCH logo, a version indicator, new tooltips and also these main changes:

  • TrainingĀ will now take you to the new consolidated training compound (more on that in the Content section) instead of the old list of outdated training maps.
  • Lone WolfĀ replaces “Play Offline”. It just has a nicer ring to it and makes it immediately clear to players that it is a solo mode.
Lone Wolf

This screen has been cleaned up considerably and now only displays relevant game modes (Terrorist Hunt and Intel Retrievalā€”more on the latter later) and maps, as well as a map search box.

You may also notice the new map descriptions in the bottom-left (unless you’re pointing at City, ’cause we forgot to add a description to that one. Got a suggestion? Post it in the comments).

šŸ’” Where did the AI settings go?
Short answer is they need to be put back somewhere. In the meantime, you can set them in the Ops Board in the Ready Room, and custom AI settings can be copied from DefaultAISettings.ini (ā€¦Steam\steamapps\common\Ground Branch\GroundBranch\Config) into AISettings.ini (%LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor) and edited. Simply copy and paste the [SkillLevel@Custom] section, change the values, and save.
Host Game

With a similar screen layout to Lone Wolf, the new Host Game UI should make self-hosting a lot more intuitive. Here are some of the changes:

  • Notices and prompts will outline listen server limitations and how to invite friends into your game.
  • Added an in-game inviting tool, accessible via the prompt upon launching the server, or via Esc menu (Invite Friends option in the top menu bar).
  • Self-hosted servers are now hard-limited to 8 players max. This is likely to be reduce further due to such servers being much more prone to poor performance than dedicated servers.
Server Browser

Not much change here from a functional standpoint, just a new layout and exposed filters at the bottom-left. We’ve also temporarily removed the server tabs that were out of order (they will be back when they work again), so we’re left with Internet and LAN only. The Game Mode column should also correctly display the game modes currently being played on servers.

šŸ’” Dedicated server capacity
Dedicated servers are now limited to 16 players max, whether on PvP or co-op. Although that was already the planned player limit for PvP, co-op is being built with 8-player teams (max) in mind, for both game design and performance reasons. We do plan on having a hard limit later, while still allowing private servers to run higher capacitiesā€”but with certain conditions we have yet to discuss, such as a separate server tab and/or enforcing password protection.
Settings

Received a big UI/UX pass, which rearranged where each option is and what they are labeled for better consistency and intuitiveness. We’ve also added a lot of tooltips to clarify some of the less obvious options, and changed a lot of defaults to more familiar, intuitive and usable settings.

Controls screen
  • Added Clear Bind button to binding prompt.
  • New binds: Tac Light / IR Illuminator, Laser and Toggle Laser ModeĀ (more on these further below).
  • Now lists previously hidden binds such as Admin Panel and Forfeit.
  • Now features a dedicated tab for Controller binds, which can now use button combos with Left Trigger (LT, L2), Left Shoulder Button (LB, L1) and Right Shoulder Button (RB, R1). It’s a first pass, so issues are expected.
šŸž Known issue: Controller binds have been reported as displaying in the Keyboard & Mouse tab as default binds. Simply changing them to your preferred Keyboard/Mouse keybinds should make them work normally.
Gameplay screen

Now features a Sight Priorities section, which allows the player to determine sight hierarchy when multiple types are equipped. This will make sure you know which optic you will default to at mission start, as well as which order it will cycle through when switching.

Video screen

Added drop-down menu for Screen Space Reflections (SSR) settings, under Settings > Video > Graphics (right below Anti-Aliasing Method). Keep in mind that SSR is a performance-light solution known to display odd reflections in some contexts. It may also display visual artifacts unless TAA (Temporal Anti-Aliasing) is used.

Audio screen

Channel now allows more options, including “Auro 11.1”: a great option for headphone users due to its extra “height” channels that allow players to discern sounds that are coming from above. We’ve added a nice tooltip to the ? icon so you know what to choose for your audio setup.

Other UI/UX changes
  • Getting to know your teammates has been made easier by a HUD element that displays player names. Like the VOIP HUD pop-up, they are only enabled in the Ready Room as a tool to get used to each other’s voice and appearance before the action phase, as well as to make admins’ lives easier.
  • The Session Roster screen (previously “Game Info”) has a new look, and will now correctly display players that are currently using VOIP.
  • The top menu bar (Esc menu) has been rearranged and now offers a Main Menu shortcut (via GB icon button), as well as contextual options such as “Session Roster” (display current players in the session), “Invite Friends” (for self-hosted games), and “Admin” for server admin options. Tooltips were also added.
  • Interaction prompts (“Use”, “Pick Up” etc.) have been updated with a new look and custom key icons.
  • First pass to improve pop-in hints.
  • Some map names were changed: Tanker Ship is now Tanker, Training Base (previously only previewable via console) is now The Farm, and the User Arena maps are now just called Arena and Arena 2.
  • The Bipod is now called Bipod (Non-Functional) to make players aware that they are not usable yet.
  • Changed display name convention for scopes: Name (Magnification), e.g. ACOG (4x), Specter DR (1x/4x) etc.
  • Added magnification value to the display name of Russian scopes 1P78 Kashtan (2.8x) and PSO-1M2 (4x).
  • Minor tweaks to text chat appearance.

Gameplay and controls

Attachments
  • Weapon lights can now be bound to your preferred key (default 5). They are still accessible via the Attachments Wheel and share the keybind with the new IR Illuminator, with NVG use determining which is active. This logic is bound to be changed to use the same one as the visible vs. IR laser (see below).
  • The new IR Illuminator function on the AN/PEQ-15 has two settings, LO (wide and dim) and HI (focused and bright). Switch between them with the Reticle Brightness keys (default Home and End).
  • The visible and IR lasers on the AN/PEQ-15 share a single toggle key (default 6), and another key to switch between them (default 7). The switch logic will be carried over to visible vs. IR lights.
  • Lasers and lights all have both a “momentary” (hold key) and a “toggle” (double-tap to turn on, tap once to turn off) activation mode.
  • The G33 Magnifier is now togglable via the same binds used for Scope Zoom In/Out (default Alt + MouseĀ Wheel). It is still accessible via the Attachments Wheel as well.
  • Variable magnification scopes now all default to the lowest magnification level.
šŸž Known issues:
ā€¢ The weapon logic for the light vs. IR Illuminator switch may not always work, causing them to either not switch properly when NVG is toggled or be both on at the same time.
ā€¢ When playing online, light and laser activation can be glitchy when using the toggle mode (double-tap).
Breaching Charge

The clacker/remote detonator is back: it will be equipped automatically after placing the Breaching Charge, which is no longer time-detonated. Simply press Fire to detonate the charge remotely.

Grenades
  • You can now throw grenades through windows once the glass has been shattered, and both glass panes and doors will now be blown up if within range of frag grenades.
  • Adjusted M67 Frag explosion radius: the max damage radius has been increased from 4 to 6 meters, with damage scaling down from there until the minimum damage radius (10 meters). (The simple radius damage implementation currently in place will be replaced with simulated shrapnel later.)
Doors
  • Will now open and close smoothly, even when gradually opened and closed. They’re much more responsive to walking/running into as well once partially open.
  • Gradually opening/closing doors once again uses an open/close logic rather than push/pull. Assuming default controls, you would now hold F + Mouse Wheel Up to gradually open and F + Mouse Wheel Down to close, regardless of which side of the door you’re on. (This was changed due to the inconsistency of the push/pull mechanic.)
  • When blown up, doors will no longer display a missing teal texture.
šŸž Known issue: Doors have been reported to occasionally prevent movement when playing online, as if the position did not sync up between server and client.
šŸ’” A little note on doors
The current door implementation is fairly old and due a much needed overhaul. Please bear with the obvious issues until we get a better system in place, hopefully sooner rather than later.
Wristwatch

A default item equipped on your character’s left wrist, the Wristwatch is incredibly helpful, especially in multiplayer games. It currently displays in-game time and a compass that rotates in relation to the world, making call-outs, navigation and keeping track of time much easier.

Rangefinder

In addition to its NV mode (default N), the Rangefinder will now actually do rangefinding. Use Aim Down Sights (default RMB) to look through it and Fire (default LMB) to scan the distance to the target. Day mode has a fixed 8x magnification, displays a mil reticle and has a cutout at the bottom to assist HUD readability. Night mode is fixed at 5x and displays a simple reticle dot at the center of the view.

The item has also received a new circular overlay, better suited for a monocular device.

šŸž Known issue: The range reading might not always be correct, as we still have to make sure it is not colliding with invisible objects, reading past objects that it should not, or having other types of issues.

New game modes

Kris has spent a lot of time reworking the game mode logic completely. It is now based on Lua scripting and should allow for a lot more flexibility when creating and adjusting modes, making everyone’s lives a lot easierā€”from Kris’ to those of future modders.

In addition to rebuilding the existing game modes from the ground up in the new system, Kris has also rigged up a new objective-based PvE game mode, called Intel Retrieval, and revamped an existing PvP one (formerly Defend), now called Uplink. Let’s go over them:

Intel Retrieval (PvE)

Intel Retrieval is the first PvE objective-based game mode in GROUND BRANCH. It currently consists of successfully locating and extracting intel from the mission area.

The player selects one of the available insertion points on the Ops Board’s map (which also displays the assigned extraction point) and, upon deploying, must search the laptops in the mission area for the intel by holding Interact (default F) while keeping the laptop in view.

*Scoffs* These guys are still running Intel Search 7?!

If the intel is found, the laptop is taken (it currently attaches like a backpack) and the player must then successfully reach the extraction point, marked with green smoke. If the intel-carrying player is killed in a multiplayer session, the item will be dropped and can be picked up by a living member of the team.

Server admins can also choose to “Exfiltrate as a team” on the Ops Board, forcing all surviving players to be at the extraction point in order to finish the mission for extra teamwork points (currently imaginary).

Intel Retrieval can be played on Small Town, Depot, Storage Facility, Creek, Run Down, Tanker, Power Station, 747 and City.

Notes
  • We have yet to mark possible intel locations on the map. For a list of all possible locations per map, click here.
  • Up to 2 extraction points can be assigned randomly, and up to 3 are available per map.
  • Keep in mind that your weapon will be slung/holstered when searching the laptop. Upon finishing the search, your weapon must be manually re-equipped.
  • If by any chance the laptop decides to disappear off the face of the map, it should respawn at its original location.
šŸ’” As a first pass on the mode, we are still trying things out and are curious about how it plays. Should there be only one laptop you must locate instead of several you need to locate and then search? Do we want the laptop to be carried in one hand with a handgun in the other, instead of on the player's back, or should it go inside a backpack? Let your thoughts and ideas be known in the comments.
Uplink (PvP)

Previously known as Defend, Uplink is almost a PvP version of Intel Retrieval.

Teams take turn as either attackers or defenders:

Attackers must locate the laptop (a single one on the map) and uplink valuable intel through it.

Defenders will deploy near the laptop must prevent that from happening by either eliminating the attacking team, or running out the round time (default 10 minutes; can be set to 5, 10, 15, 20, 25 or 30 min by admins).

Uplink can be played on Small Town, Power Station, Storage Facility, Creek, Run Down, 747 andĀ City.

Notes
  • Admins can also determine Defender Setup Time on the Ops Board. This value determines how much time (in seconds) defenders have before attackers can move.
  • There is a spawn protection area around the attacker’s insertion area to prevent defenders from spawn-killing them while they are stuck in the defenders’ setup period.
šŸ’” A very basic mission editor is in place and can be opened using the editmission console command. It lacks documentation and usability features, but those who wish to try it out as-is for whatever reason, can do so.

Visual effects (VFX)

Visuals have received a considerable overhaul, as previewed in our video from a couple months ago:

Be on the lookout for these:

  • As noted earlier, Screen Space Reflections (SSR) have been enabled again. Although not without issues, SSR can vastly improve the look of some maps and bring materials to life.
  • New NVG depth-of-field (DOF) effect and updated overlay mask.
  • Fixed the color of nearby objects “seeping through” when wearing NVG, as well as glare appearing white.
  • New grenade explosion particle effects (M67 Frag and MK13 Flashbang).
  • New flashbang stun effect: “burned image” effect and ear ringing (very WIPā€”does not consider distance or direction players are facing).
  • New laser effects: Visible Laser dot and IR Laser beam and dot.
  • Updated holo and red dot reticles to appear luminous again: will be harder to see against certain backgrounds, but look much better and realistic.
    • AimpointĀ® sights have a slightly brighter reticle than others.
    • Added tint to holo and red dot sight glass to improve reticle visibility (and in the case of red dots, for authenticity as well).
    • Glow has been re-added to illuminated scope reticles as well.
  • Tweaked the Marker Strobe effect to look a little strobier and less prone to clipping the character.
  • Muzzle effects now originate a couple inches away from the muzzle rather than inside them.
  • Lasers no longer go right through characters.
  • The light on top of power switches will now turn off once the box is damaged.
Known visual issues
  • Although sleeves and gloves were slightly adjusted, some combinations will still look funky here and there. Gotta wait for that V1032.
  • Laser dots may “dip” into walls when moving certain ways in relation to surfaces.
  • The new red dot/holo lens tint appears to allow players to see through smoke. We’ll be patching that as soon as possible, even if it means removing the tint until we figure out how to fix it properly.

Audio

All those new visuals above would not mean much without the audio to go with them. Mikson has greatly improved how GB sounds since our last major update with soundscapes for every map (no more dead silent missions!), new voice lines for AI enemies and Comms Wheel (default G) and new SFX to both replace old ones and add to previously quiet actions. Here’s the full list:

Sound effects (SFX)
  • New placeholder AI voice lines: donated by voice actor Daeln Murphy (thanks, Daeln!), these are only meant as a temporary upgrade, as we intend to use native voice lines for the final game rather than accented English.
  • Added grenade bounce sounds. (Still missing certain surface types.)
  • New explosive (M67 Frag, MK13 Flashbang, Breaching Charge) SFX, with indoor and outdoor versions.
  • New spent shell casing sounds, with different sounds for different calibers.
  • New door opening/closing sounds.
  • Improved footstep sounds.
  • New gear movement sounds dependent on weight of current loadout.
  • New item drop sounds.
  • Weapon transition sound effects: rustling fabric, mechanical clicks and other sounds from moving a gun around while in gear.
  • Door explosion debris SFX.
Soundscapes/ambiences
  • Power Station and 747 now have environment sounds.
  • The new maps (Run Down and The Farm) do too, so no more dead silent maps.
Other audio changes
  • Fixed the lack of occlusion in the Ready Room testing range.
  • Improved various sound effects, as well as acoustic portals and sound occlusion.
  • Increased audio stun effect radius from breaching charges when on the opposite side of the door.
  • Reduced the probability of AI callouts/bark to mitigate repetitiveness and keep tangos from giving themselves away so often.

Content

Maps and performance

A lot of work has gone into map optimization, and players are likely to have better performance overallā€”particularly on map Depot. Playtesters have also reported lower FPS drops when using PiP scopes, though your mileage may vary. How is the game running for you now? Let us know and help us optimize further!

New map: Run Down

To draw from the new map descriptions: This decrepit abandoned building standing in an Eastern European industrial district appears to have hosted a school turned field hospital.

Run Down is a very atmospheric map with no shortage of very tight CQB ranges and nerve-wracking moments even when playing at daytime hours. It features a 3-level building with a courtyard in the center, a small surrounding area and a small garage building at the annexed parking lot.

New map: The Farm

The real-life Camp Peary is a military reservation in Virginia (USA) that hosts a CIA training facility known as The Farm, where clandestine officers and other personnel are trained.

In GROUND BRANCH, The Farm (built by former Hell Let Loose environment artist Will Bullen) replaces all the previous training maps with one single hub containing an indoor shoothouse, an indoor and an outdoor shooting range, and an aircraft-based shoothouse.

Aircraft shoothouse training scenario at The Farm (credits: truck.shepard [NPA])

šŸ’” There's a lot of room for ideas and expansion in The Farm, which we hope to be able to try in the future. One of them is making the new shoothouse (whose layout was suggested by our active SOF advisor) randomized to some extent, possibly adding multiple entry points as well to keep things fresh.
Other map updates

Maps are a continuous effort to refine as we move forward, both aesthetically and functionally. In addition to general cleanup, some maps have received more substantial updates.

Much of the superstructure section of Tanker was reworked and upgraded, with other sections of the ship being built upon considerably as well. Make sure you also keep an eye out for all the power switches that were added to control the lighting of different parts of the vessel.

City‘s street level has seen major updates as well, especially noticeable inside the central square buildings:

Power Station‘s substation area is now a lot more interesting, offering much better cover. You may notice other smaller changes elsewhere in the map.

šŸž Known issues: Performance may be sluggish on maps Tanker and Run Down when playing Lone Wolf or self-hosting co-op games. This is likely due to high CPU usage by AI and navmesh optimization issues.
Gear

Modest updates in this department, but still pretty tight:

  • Added Eye Pro glasses, selectable for the EYEWEAR slot. They’re missing a dedicated icon.
  • Added extended magazines for MK25, M9A3 and M17 pistols.
  • Added proper NVG mount and tweaked flipped-up angle to be less obstructive. Needs work.
  • Replaced the MP7A1 and MP7A2 with a higher-quality MP7A1 model. No extra skins yet, but we’ll get there.
  • Replaced the MP7 Suppressor with a new model.

The MP7 Suppressor was ordered to the very talented 3D artist Bakr Asaad (aka zraider), also author of the amazing M110 and M110K1 suppressors. Check out his portfolio here.

  • Replaced the old PMII 5ā€“25x scope with a newer model. Scale has been fixed too.
  • Replaced old generic Tac Light attachment with SureFireĀ® M600V model, named Tac Light (M600V) in-game.
  • Replaced the old Holster with a new modelā€”the first of many Pau PeƱalver models to make it into the game. Currently offers 4 skins to choose from.
  • Replaced the old Rail Cover attachment with a much higher-fidelity model, now called Rail Panel (Long). Also added a shorter version: Rail Panel (Short).
  • Attachment slots for the Plate Carrier were adjusted for a more authentic look. The top row has also lost a slot.

Known issues (general)

  • The SVD no longer accepts a suppressor (it was never meant to), but still lists the Suppressor in the Attachments menu.
  • This is not a new issue, but it might be more noticeable now in some contexts: scope sight pictures can appear either darker or brighter than the world outside of it.
  • The old bugs that break weapon poses when switching items and sights are still out there, despite Kris’ numerous attempts to fix them. If you get them, please make an in-game report if possible.
  • Some players reported seeing up-and-down weapon shake. We’re still looking into it.
This has been BUILD UPDATE #028!
Thank you for your continued support, for all the amazing response to this little passion project of ours, and for allowing us to keep pursuing it to its end. We're not going anywhere as long as you guys are out there and on board. Keep safe, enjoy this build, and we'll see you on the next update.

CTE UPDATE #006: V1031 Testing 3

šŸ†” GROUND BRANCH CTE
Build ID: 6330185 (Client) / 6330198 (Dedicated Server)
Download size: 78 MB (Client) / 37 MB (Dedicated Server)
āš ļø NOTICE
These release notes are for the V1031 testing build currently available in the GROUND BRANCH CTE Steam app, not to be confused with the actual (and upcoming) V1031 release for the main GROUND BRANCH app.
šŸšØ CLEAR YO FILES
We strongly recommend everyone to delete all files located in %LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor (copy-paste this into your File Explorer address bar and hit Enter) to ensure your old saved files do not conflict with the latest changes and cause input and settings issues.

AnotherĀ Community Test EnvironmentĀ update is now live on the GROUND BRANCH CTE app with the latest V1031 testing build. This is the thirdā€”and hopefully finalā€”V1031 CTE update. If nothing major pops up, we’ll be moving on to the official V1031 release on the main GROUND BRANCH app.

If you’re just now getting into CTE, make sure to check out the previous CTE release notes (#004Ā andĀ #005) to get the full picture.

Game modes and gameplay

  • Terrorist Hunt should now end as expected once the last tango is killed.
  • Player/team stats in the AAR screen should display again for dead players.
  • Increased the size of the Extraction Point collision component to make extracting multiple players easier (Intel Retrieval).
  • Added more checks to important items (laptop) so they hopefully don’t fall through floor/ground anymore.
  • Max player count is now enforced on map/mode change from PvP to PvE. It was causing the new player limit to break.
  • Added a few AI spawn and guard points to Depot (Intel Retrieval and Terrorist Hunt).
  • Created new, less emissive material for Ops Board and toned down the noise on the minimap for better clarity.
  • Hopefully fixed the weapon vertical shake some players were reporting.

Input and settings

  • Fixed default Keyboard & Mouse keybinds for Reticle Brightness Up and Reticle Brightness Down resetting to LAlt + D-Pad Left/Right.
  • Fixed default Lean Type being “Toggle” instead of “Hold” in Settings > Controls (when controls are reset via Reset Default button).
  • Fixed Screen Space Reflections settings being overwritten when Effects Quality is changed.
  • The solution for a universal console key didn’t work out, so we’ve added alternate console keys back to DefaultInput.ini for players who do not use a US keyboard or EN-US input language in Windows. In addition to the Tilde key, these should also bring up the console:
    • Multiply * (aka the asterisk key on the NumPad)
    • Caret ^ and Section Ā§ (both commonly found where the US Tilde key is on some layouts)
    • Grave ` (ditto above)
    • Backslash \ (for those with tenkeyless/80% keyboards)
If these do not work for you, here's how you can set up your own custom console keys:

1ļøāƒ£ Open DefaultInput.ini (%LOCALAPPDATA%\GroundBranch\Saved\Config\WindowsNoEditor).
2ļøāƒ£ Add +ConsoleKeys=YourKeyHere to the bottom of the file, replacing the underlined part with the key you want to use. For example, to make F5 open the console, add +ConsoleKeys=F5. 3ļøāƒ£ Save the file, and it should just work next time you launch the game. Conversely, if you want to remove any of the existing console binds, simply remove the line from the file and save.

Content

  • Changed display name convention for scopes: Name (Magnification), e.g. ACOG (4x), Specter DR (1x/4x) etc.
  • Added magnification value to the display name of Russian scopes 1P78 Kashtan (2.8x) and PSO-1M2 (4x).
  • Fixed the display name for Tac Light (M600V) (had an extra zero in it).
  • Improved magnified sights clipping camera when mounted too far back on the MPX.
  • Reduced effect of volumetric lights on flashlights to minimize ghosting effect when moving in heavy volumetric areas of maps, mostly visible in nighttime gameplay.

UI

Art/UX pass on the Server Browser:

  • Hid tabs that are temporarily out of order (only Internet and LAN still show up).
  • Cleaned up server list: alignments, font sizes, icon proportions and general formatting.
  • Fixed Game Mode column not displaying the proper game mode.

Known and possible issues

  • Bots may be caught with exaggerated weapon shake.
  • Footsteps may sound duplicated. If you come across this bug, please file a report mentioning the map and location of the issue!
This has been CTE UPDATE #006!
Thanks for playing the CTE and helping us get this update in order ā€” we really appreciate it. Stay safe and let us know of any game-breakers you come across!