What's Changed
- Added support for
Secret Exfils
- Improved
GenericPacket
memory and CPU usage Dedicated Client
is now namedHeadless Client
to help with confusing termsHeadless
will now try to unload unused assets after loading a scene, reducing memory usage- Bundles layout and loading has been reworked, resulting in the file size being nearly ½ of what it used to be
- Websocket handlers have been improved to run on its own thread
- Fixed a bug where the Hideout would stop working if you cancelled loading into a raid
- All players are now notified when another player connects/disconnects
- Quest sharing options can no longer be changed if disabled on the server
- Added new setting that when enabled automatically ticks
Use Headless Client
if available - The timer sync now runs on its own thread, which should help alleviate "stuttery movement" after your client has lagged for a bit
Airdrop Crates
are now properly synced when loading in for clients, fixing a bug where they would end up at (0,0,0) until dropped and being visible on some maps- Improved the code used to sync when another player aims down their weapon, it's now much faster and removed all redundant logic
- Improved the code used to sync the weapon overlap on another player, should significantly reduce CPU usage as it no longer updates every frame unless the position changed
- Your entire inventory is no longer marked as non-FIR after reconnecting
- Clients no longer crash after extracting if an airdrop occured during the raid
- Dramatically improved how
SyncObjectPacket
is handled, reducing its memory footprint and also deserializes faster - Improved how weapon jams are handled and fixed several bugs when a jam occurs
- Added sync for
Rockets
- Added a new server option to allow anyone to use the
Start Raid
button - Added min/max values to the UDP port
- Fixed a bug where the host couldn't inspect other players during loading
- Fixed a bug where all players would disappear on the party panel during loading if the options screen was opened
- Fixed a bug where the host could not inspect other players during the loading screen
- Fixed a bug where the headless client would start the raid before everyone has loaded in
- Added new tooltips to the "Host Raid" button
- Fixed additional desync when a "feed jam" would occur
- Added the ability for modders to register their own types
- Consolidated several packets into a generic packet, reducing memory footprint and improves the speed at which they can be handled
- Fixed a bug in the
RequestPacket
- Dramatically improved the performance and memory footprint of how
Exfiltration Point
s are synced - The client will now re-use BSG writers/readers from a cache rather than creating new ones, alleviating stutters
- Replaced the
MainThreadDispatcher
with native EFT code, improving performance and reducing memory usage - Major tweaks and improvements to
ObservedFirearmController
s - New Feature: Added experimental garbage collector that can be used to improve memory usage. Still experimental
- Refactored and improved how packets are received. They are now directly used on the receiving player and no longer queued into a redundant queue system, improving performance and memory usage
- Observed players now react to gunshots again by grunting / screaming in pain
- Improved the speed at which the spawn point received from the host is fetched
- Added tooltip to the
Spectate
box to reduce confusion with certain locales - New Feature: The client will now attempt to automatically detect VPNs and use their IPs when launching for the first time. Experimental, please give feedback if you notice issues
- Improved how
NetId
s are assigned to every client - You can now select which headless to use when hosting a raid, rather than being assigned one automatically
- Removed custom HttpClient and instead the SPT one is re-used
- Fixed a bug where the
BorderPacket
s would sometimes throw errors - Improved how killer weapons are synced. If the killing player is not part of the main party the check is skipped as the information is redundant, improving performance when an AI is killed
- Updated
LiteNetLib
to latest commits - Updated bot spawn logic to increase compatibility with
Questing Bots
- The
Transit
system is now available again, but only when the headless client is hosting - Reduced the memory footprint when armor states are synced between clients
- Improved how the
BTR
/Transit
stashes are initialized for every player - Major New Feature: Fika now supports in-game VOIP. The hosting player needs to enable it in their
F12
settings for it to load. This is still very experimental, and can be very buggy while playing on a headless session - Improved how pings and nameplates are rendered while using an upscaler and aiming down a scope (thanks Shynd)
- Added support for the new continuous healing as well as the mod, the animations should now properly restart with every limb
- Added more logging and error handling during the initialization of the game
- Every player is now notified when another player joins the session or reconnects
- Fixed a bug where clients would receive the wrong
SpringSnowFactor
- Many other general improvements to the code
Full Changelog: v1.1.5.0...v1.2.0.0