Difference between revisions of "MegaPage"

From Holdfast: Nations At War
Jump to navigation Jump to search
Line 73: Line 73:
 
* Introduced a new import command allowing server configuration files to import data from other text files. Use ''import <relativeImportFilePath>''.
 
* Introduced a new import command allowing server configuration files to import data from other text files. Use ''import <relativeImportFilePath>''.
 
* Emplacements can now be spawned using the serverconfig ''objects_override'' command. This also supports custom faction as an optional command parameter.
 
* Emplacements can now be spawned using the serverconfig ''objects_override'' command. This also supports custom faction as an optional command parameter.
* Configure the number of maps available to vote for by placing ''max_map_voting_choices <numberOfChoices> (range: 2-4)'' in the server configuration file.
+
* Configure the number of maps available to vote for by placing ''max_map_voting_choices <numberOfChoices>'' (range: 2-4) in the server configuration file.
* Enable or disable the random map vote selection by placing ''include_random_map_vote <enable> (default: true)'' in the server configuration file.
+
* Enable or disable the random map vote selection by placing ''include_random_map_vote <enable>'' (default: true) in the server configuration file.
* Override an existing artillery spawn on a map of your choosing by ''placing artillery_spawn_override <slotId> <ArtilleryType>'' in the server configuration file within a map rotation. ArtilleryType can be: FieldGun, Howitzer, RocketLauncher, Mortar, None, Random, RandomSymmetric.
+
* Override an existing artillery spawn on a map of your choosing by placing ''artillery_spawn_override <slotId> <ArtilleryType>'' in the server configuration file within a map rotation. ArtilleryType can be: FieldGun, Howitzer, RocketLauncher, Mortar, None, Random, RandomSymmetric.
* Use the ''set cannonLoadingSpeedMultiplier <value>'' rc command to increase all cannon loading speeds.
+
* Use ''rc set cannonLoadingSpeedMultiplier <value>'' to increase all cannon loading speeds.
* Use the ''set explosionKnockbackAngle <angle>'' rc command to define the knockback angle from explosions.
+
* Use ''rc set explosionKnockbackAngle <angle>'' to define the knockback angle from explosions.
* Use the ''set explosionKnockbackForceMultiplier <value>'' to increase the knockback force from explosions.
+
* Use ''rc set explosionKnockbackForceMultiplier <value>'' to increase the knockback force from explosions.
* Use the ''set explosionKnockbackMaimedTime <time>'' to define for how long the player is unable to move after hitting the ground when hit by an explosion knockback.
+
* Use ''rc set explosionKnockbackMaimedTime <time>'' to define for how long the player is unable to move after hitting the ground when hit by an explosion knockback.
* Use the ''set killerPlayerCardDuration <time>'' to define the minimum time the player card will show.
+
* Use ''rc set shrapnelGroundLethalRange <value>'' to set the radius from explosion in which players die from a shot that lands and then explodes in the ground.
* Use the ''rc set meleeArenaRoundEndFactionWin'' to forcefully end a round in the Melee Arena game mode.
+
* Use ''rc set shrapnelGroundInjuryRange <value>'' to set the radius from explosion in which players take damage from a shot that lands and then explodes in the ground.
* Use the ''rc carbonPlayers <player_id> <score> <reason that allows spaces>'' command to add score to bots.
+
* Use ''rc set shrapnelGroundKnockbackRange <value>'' to set the radius from explosion in which players get knocked back from a shot that lands and then explodes in the ground.
* Use the ''rc set allowSpawnedPlayersSpectateOnly <true/false>'' to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
+
* Use ''rc set shrapnelGroundDamage <value>'' to set how much damage players take when caught in the injury radius from a shot that lands and then explodes in the ground (damage is constant irrelevant of distance to the explosion).
* Use the ''rc set freeflightCameraAllowed <true/false>'' to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
+
* Use ''rc set shrapnelGroundForce <value>'' to set the strength of the knockback from a shot that lands and then explodes in the ground (knockback strength is also higher the closer you are to the explosion).
 +
* Use ''rc set shrapnelAirborneLethalRange <value>'' to set the radius from explosion in which players die from a shot that explodes in the air.
 +
* Use ''rc set shrapnelAirborneInjuryRange <value>'' to set the radius from explosion in which players take damage from a shot that explodes in the air.
 +
* Use ''rc set shrapnelAirborneKnockbackRange <value>'' to set the radius from explosion in which players get knocked back from a shot that explodes in the air.
 +
* Use ''rc set shrapnelAirborneDamage <value>'' to set how much damage players take when caught in the injury radius from a shot that explodes in the air (damage is constant irrelevant of distance to the explosion).
 +
* Use ''rc set shrapnelAirborneForce <value>'' to set the strength of the knockback from a shot that explodes in the air (knockback strength is also higher the closer you are to the explosion).
 +
* Use ''rc set killerPlayerCardDuration <time>'' to define the minimum time the player card will show.
 +
* Use ''rc set meleeArenaRoundEndFactionWin'' to forcefully end a round in the Melee Arena game mode.
 +
* Use ''rc carbonPlayers <player_id> <score> <reason that allows spaces>'' command to add score to bots.
 +
* Use ''rc set allowSpawnedPlayersSpectateOnly <true/false>'' to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
 +
* Use ''rc set freeflightCameraAllowed <true/false>'' to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
 +
* Use ''rc set freeflightCameraAllowedPostPermaDeath <value>'' to allow players in a single-life game mode to only be able to use the freeflight camera after they die. If the user is an admin, they can freely spectate.
 
* Exposed the following feature for modders through IHoldfastSharedMethods3.
 
* Exposed the following feature for modders through IHoldfastSharedMethods3.
 
:» ''void OnStartSpectate(int playerId, int spectatedPlayerId);'' - This will be called when a player starts spectating someone else.
 
:» ''void OnStartSpectate(int playerId, int spectatedPlayerId);'' - This will be called when a player starts spectating someone else.

Revision as of 14:52, 30 August 2023

2.12

Features & Improvements

  • The Howitzer! Rain explosive shells from above to disrupt and eliminate the enemy. Shells that land in the vicinity will knock back.
  • The Barracks! Customise all classes across all factions with your preferred uniform, head, weapons and voice pitch.
  • Player Cards! Customise your personal player card with unique unlockable banners, portraits, titles and medals. Keep an eye out for future updates for more on this front.
  • Random Map Vote! Not too keen on the current selection of maps available? Cast your vote for a random map. This function is customisable via server configuration commands. We’re sure it will come in handy when hosting events.
  • A Fresh UI! From the moment you launch the game and all the way until you finish a match, you’ll see a whole new UI that has been designed and created to further improve the user experience and provide much-needed modularity for future updates that the old UI simply didn’t allow for.
  • Customisable UI! Change the position of the health bar, game chat, minimap and kill feed to your preference. Come this update you’re also able to adjust the game chat’s font size as well as the minimap’s size.
  • Seasonal Global Leaderboards! Compete for the highest score in classless leaderboards split across the game’s Napoleonic and WW1 fronts.
  • Seasonal Regiment Leaderboards! Compete in a seasonal race to the top alongside fellows in your regiment. Regiments that gather the highest score through participating in public events or playing on official servers will appear at the top of the registry list.
  • Regiment Discords. Players are now able to join a regiment’s Discord by scanning a QR code.
  • Explosion Knockbacks. Explosive barrels now pack a bigger punch and will knock back the enemy if in the vicinity.
  • Enlisted Service. An enlisted will no longer count as part of a regiment’s strength if they haven’t logged in 30 days. Inactive individuals will still remain members of the regiment and will be counted once more as part of the regiment’s strength should they become active.
  • In-Game Store. Gift or purchase Holdfast’s cosmetic DLCs through the game.
  • The introductions of player cards come with additional unlocks for all existing cosmetic DLCs.
  • A wider selection of crosshairs has been made available.
  • Introduced new admin tools accessible through the Round Players ‘P’ panel allowing administrators to slap, bring or go to another player.
  • Introduced dynamic artillery spawn sections configurable by server configuration commands. You can also set randomised artillery to spawn on map load through this new function.
  • The new addition of the administrator role provides access rights to everything in the regiment with the exception of disbanding the regiment, promoting others to the administrator role or kicking the regiment’s owner. That’s mutiny, Sir!
  • Redesigned and redeveloped from the ground up Holdfast’s regiment registry, leaderboards and stats backend systems to improve stability and allow for the future expansion of content.

Quality of Life

  • You are now able to set to default keybinds and settings.
  • You are now able to search through the game’s keybinds and settings.
  • You now automatically join a server after downloading mods.
  • You can now access the regiment registry from the escape menu whilst playing a match.
  • Introduced search functionality to all areas of regiment management. Adhering to enlistment requests, editing ranks as well as managing members.
  • Increased maximum amount of ships visible in the naval UI (7 -> 16).

Gameplay

  • You are no longer able to place squad camps in water.
  • Specific classes are now able to run while carrying projectiles and artillery ammunition boxes.
  • Increased movement and rotation speed of field guns.
  • Reduced the field gun’s cannonball bounce damage.
  • Players are now able to rotate the camera while loading cannons, ramming cannons and climbing.
  • Players are now able to zoom while aiming cannons.
  • Rockets are now able to damage a ship’s hull.
  • You are no longer able to damage structures and buildable objects when loading round shot into a swivel gun on Holdfast’s army front.
  • Centred the swivel gun aiming camera for a better representation of the shot trajectory.
  • Improved visibility of mortar trails.
  • Your squadmates are now highlighted in green on the scoreboard.
  • Your crewmates aboard the same naval vessel are highlighted in green on the scoreboard.
  • Moved the giant tree on Ancient Plains blocking the artillery’s line of sight in spawn.
  • Added a mortar for the defenders to use on Fort Al Farid.
  • Moved the A spawn point behind the spike defences on Balamor Bay.
  • The large cannon atop the tower on Balamor Bay now has a better line of sight.
  • Cannons present on the piers of Balamor Bay are now able to rotate further inwards.
  • Introduced more obstructions covering the left flank on Heroes Landing.
  • Players now have more granular control over their character’s voice pitch.
  • Removed multiple variations of grapeshot from ammo boxes. You can now simply load a grapeshot into a piece of your choosing and the grapeshot’s potency will be automatically determined based on the artillery piece you loaded it into. Ie. Grapeshot loaded into swivel guns are less powerful than those loaded into a moveable field gun.
  • Redesigned the spray pattern for grapeshot to have more spray variation.
  • Introduced a new spawn menu with a twist.

Optimisation

  • Performed several server-side optimisations.
  • Performed minor client-side optimisations.
  • Performed a first-pass optimisation to reduce the game’s file size.
  • Performed optimisations on mod-loaded terrains.
  • Performed server optimisations to improve the game lobby’s robustness.
  • Optimised shadows cast by certain structures.
  • Optimised prop rendering on Port Nile.

Graphical

  • Performed a graphical pass on multiple game assets.
  • Introduced new firing animations for artillery pieces.
  • Introduced a camera shake effect for explosions.
  • Improved the animation for when a player is moving the field gun.
  • Introduced additional community-submitted regimental banners.
  • Introduced new particle effects for grapeshot.

Server Configuration

  • Introduced a new import command allowing server configuration files to import data from other text files. Use import <relativeImportFilePath>.
  • Emplacements can now be spawned using the serverconfig objects_override command. This also supports custom faction as an optional command parameter.
  • Configure the number of maps available to vote for by placing max_map_voting_choices <numberOfChoices> (range: 2-4) in the server configuration file.
  • Enable or disable the random map vote selection by placing include_random_map_vote <enable> (default: true) in the server configuration file.
  • Override an existing artillery spawn on a map of your choosing by placing artillery_spawn_override <slotId> <ArtilleryType> in the server configuration file within a map rotation. ArtilleryType can be: FieldGun, Howitzer, RocketLauncher, Mortar, None, Random, RandomSymmetric.
  • Use rc set cannonLoadingSpeedMultiplier <value> to increase all cannon loading speeds.
  • Use rc set explosionKnockbackAngle <angle> to define the knockback angle from explosions.
  • Use rc set explosionKnockbackForceMultiplier <value> to increase the knockback force from explosions.
  • Use rc set explosionKnockbackMaimedTime to define for how long the player is unable to move after hitting the ground when hit by an explosion knockback.
  • Use rc set shrapnelGroundLethalRange <value> to set the radius from explosion in which players die from a shot that lands and then explodes in the ground.
  • Use rc set shrapnelGroundInjuryRange <value> to set the radius from explosion in which players take damage from a shot that lands and then explodes in the ground.
  • Use rc set shrapnelGroundKnockbackRange <value> to set the radius from explosion in which players get knocked back from a shot that lands and then explodes in the ground.
  • Use rc set shrapnelGroundDamage <value> to set how much damage players take when caught in the injury radius from a shot that lands and then explodes in the ground (damage is constant irrelevant of distance to the explosion).
  • Use rc set shrapnelGroundForce <value> to set the strength of the knockback from a shot that lands and then explodes in the ground (knockback strength is also higher the closer you are to the explosion).
  • Use rc set shrapnelAirborneLethalRange <value> to set the radius from explosion in which players die from a shot that explodes in the air.
  • Use rc set shrapnelAirborneInjuryRange <value> to set the radius from explosion in which players take damage from a shot that explodes in the air.
  • Use rc set shrapnelAirborneKnockbackRange <value> to set the radius from explosion in which players get knocked back from a shot that explodes in the air.
  • Use rc set shrapnelAirborneDamage <value> to set how much damage players take when caught in the injury radius from a shot that explodes in the air (damage is constant irrelevant of distance to the explosion).
  • Use rc set shrapnelAirborneForce <value> to set the strength of the knockback from a shot that explodes in the air (knockback strength is also higher the closer you are to the explosion).
  • Use rc set killerPlayerCardDuration to define the minimum time the player card will show.
  • Use rc set meleeArenaRoundEndFactionWin to forcefully end a round in the Melee Arena game mode.
  • Use rc carbonPlayers <player_id> <score> <reason that allows spaces> command to add score to bots.
  • Use rc set allowSpawnedPlayersSpectateOnly <true/false> to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
  • Use rc set freeflightCameraAllowed <true/false> to allow only spawned players to spectate their own team. If the user is an admin, they can freely spectate.
  • Use rc set freeflightCameraAllowedPostPermaDeath <value> to allow players in a single-life game mode to only be able to use the freeflight camera after they die. If the user is an admin, they can freely spectate.
  • Exposed the following feature for modders through IHoldfastSharedMethods3.
» void OnStartSpectate(int playerId, int spectatedPlayerId); - This will be called when a player starts spectating someone else.
» void OnStopSpectate(int playerId, int spectatedPlayerId); - This will be called when a player stops spectating.
» void OnStartFreeflight(int playerId); - This will be called when a player starts using free roam cam.
» void OnStopFreeflight(int playerId); - This will be called when a player stops using free roam cam.
» void OnMeleeArenaRoundEndFactionWinner(int roundId, bool attackers); - This will be called on a melee arena round end depending on who wins the round.
» void OnPlayerConnected(int playerId, bool isAutoAdmin, string backendId); - This will be called when a player connects to a server. This is server only. Here’s the normal flow: OnPlayerConnected > Tell the player to loading screen > Player picks faction and class > OnPlayerJoined.
» void OnPlayerDisconnected(int playerId); - This will be called when a player leaves a server. This is server only. Unlike OnPlayerLeave, this happens even on people that didn't spawn in.

SDK Additions

  • Introduced the following SDK props.
» Prop_ww1_large_wood_sign
» Prop_ww1_wood_sign
» Structure_Fort_MartelloTower1v2_Artillery_Destructible_Climbable
» Environment_ww1_soil_edge_01
» Environment_ww1_soil_edge_02
» Environment_ww1_soil_edge_03
» Prop_ww1_hanging_cloth
» Artillery_Movable_FieldGun_Howitzer_Destructible_Mod
» Prop_ArtilleryCannonFieldHowitzer_Destroyed1_Mod
» Prop_ArtilleryCannonFieldHowitzer_Destroyed2_Mod
» Prop_ArtilleryCannonFieldHowitzer_Destroyed3_Mod
» Functional_SpawnMenuCharacterScreen_Mod
» Functional_SpawnMenuCharacterScreenEmpty_Mod
» Prop_White_Wooden_Sign_Long_Mod
» Prop_White_Wooden_Sign_Short_Mod
  • Use the prefabs below as a reference to feature the new spawn menu functionality in your modded game level.
» Functional_SpawnMenuCharacterScreen_Mod
» Functional_SpawnMenuCharacterScreenEmpty_Mod

Bug Fixes

  • Solved a bug where players would sometimes play Halloween patriotic cheers outside the event’s time.
  • Solved an issue where the game would hang on map vote on the Naval Battlefield and Coastal Siege game modes.
  • Solved an issue where the game would hang on map vote if no voting parameters were set in the configuration file.
  • Solved a visual bug where cannon wheels would snap to position when moved.
  • Solved an issue with the bayonet going invisible when attaching or detaching.
  • Solved an issue with naming conventions for certain Austrian uniforms.
  • Solved an issue with snow coverage flickering on the screen.
  • Solved an issue that could sometimes cause the game to crash when mounted.
  • Solved multiple issues with horse saddles.
  • Solved an issue with the officer line marker drawing over carriable flags.
  • Solved an issue with the conquest flag order on Arendan River.
  • Solved an issue with floating ladders on Fort Darial.
  • Solved an issue with one of the trees on Sacred Valley clipping inside a roof.
  • Solved multiple issues on Al Uddin Ruins with missing script objects.
  • Patched more pathways on Glacier preventing unruly fellows from going over the border.
  • Solved an issue with one of the buildings floating on Fort Imraan.
  • Solved an issue with destruction on Hills of Tyrol.
  • Solved an issue where sometimes players could spawn atop the ruins on Al Kimar Pyramids when using squad camps.
  • Solved an issue with collision detection in one of the tunnels on Freurlund.
  • Solved an issue with collision detection on one of the bunkers in Sacrifice.
  • Solved an issue with a gap being present on the border of Martello Tower.
  • Performed various small fixes on Countryside.
  • Solved an issue with a flag floating on Fort Pierre.
  • Solved an issue on Avignon where sometimes players could spawn inside the tower when using squad camps.
  • Solved an issue where sometimes bullets didn’t collide with the lower pillars on Fort Salletes.
  • Solved an issue with swimming on Island Plains.
  • Solved an issue with spawn icons for South Sea Castle being incorrect.
  • Solved an issue with shadows on Aunby Valley.
  • Solved an issue with occlusion culling when one of the walls on Fort Al Farid gets destroyed.
  • Solved an issue with the lighthouse stairs missing collision on Balamor Bay.
  • Solved an issue with code exceptions on the destruction of the dreadnought turrets.
  • Renamed the Loyalist Edition folder for the Loyalist DLC to Loyalist Upgrade.
  • Solved an issue where players could sometimes detach their player camera and go into free flight.
  • Solved an issue with cliff mod LODs culling too soon.
  • Solved issues with multiple incorrect naming conventions on SDK props.
  • Solved an issue with the lantern being incorrectly rotated in structure_ww1_structures_french_cernay_barn1_Populated1 SDK prop.
  • Solved multiple issues with normals on desert structures.
  • Solved an issue with ww1_french_cernay_destroyedwall2 destruction stage 3 SDK prop being enabled by default.
  • Solved an issue where if you spawned sapper emplacements through server configuration commands, the game would freeze.
  • Solved an issue with sappers being unable to build their emplacements in certain locations.
  • Solved one of the cases that sometimes caused the in-world interaction icons not to show.
  • Solved an issue where incorrect interaction icons for loading certain artillery pieces would show.
  • Solved multiple issues with capture point indicators.
  • Solved multiple other minor issues.