github project-fika/Fika-Plugin v2.0.0
Fika Release 2.0.0

16 hours ago

Compatible with EFT 0.16.9.40087

  • CoopGame has been refactored into sub-components: ClientGameController, HostGameController and HeadlessGameController for headless clients.
    • This has allowed us to abstract most of the logic, making it easier to separate host, client, and headless modes
    • Mod authors should note the new structure if they relied on LocalGame-specific data. Adjusting should not be difficult
    • This also optimizes AI updates, which should now run more efficiently than in the base game (SPT and PvE)
  • Debug commands can now be used when not hosting (these are still not available on public builds)
  • The transit system for Fika has been refactored
    • It should now allow transit without a headless server, though this is still an unsupported feature due to its unreliability.
  • The KeepAlive pinging now runs on its own thread, reducing hitches when the backend is slow to respond
  • Added support for the new Rocket Launcher
  • Fixed a base game bug where players in local games didn’t play idle breathing animations (this has been bugged for years on live and still is)
  • The VisualPass() method — responsible for most of the lag apart from AI — has received a massive overhaul and now runs much faster for clients, more in line with live raids. Most players should see a noticeable performance gain from this change
  • Optimized many loops and coroutines throughout the code base
  • Surface audio calculations have been overhauled and should no longer randomly play the wrong sound, especially for clients on a headless session
  • The headless will now keep running for ~5 minutes if the last disconnect was not graceful (crash, disconnect, etc.)
  • The method responsible for updating every player each frame has been slightly optimized compared to the base game version, resulting in a small performance boost
  • The pedometer (the class that counts your steps in a raid) no longer runs for bots and other players
  • Server FPS now updates more frequently in the debug menu
  • Corpses are now culled when not visible in the camera, unlike in live local games
  • Movement sync has received several major updates
    • Removed redundant math in many movement states that ran every frame
    • SprintSpeed is now synced over the network rather than calculated locally, resulting in more accurate sprinting
    • States are now only updated when a new one is available, instead of every frame, improving performance
    • Jumping has been dramatically improved and should no longer play incorrect animations when jumping from a running stance
    • Fixed an incorrect calculation of the time difference between the server and client
    • The IsMoving checks have been overhauled and should now be 100% accurate, also fixing a bug where bots appeared to ice skate in place when opening doors
    • Overall, movement sync is now near perfect on a stable connection and looks better than live online games in every way
  • Many structs have been improved
  • Networking and data serialization/deserialization have received a major overhaul
    • Many primitive types are now packed into smaller data; for example, a float is now either 2 or 1 bytes instead of 4 in many cases
    • Structs such as Vector3 and Vector2 are now written and read up to 10× faster (in some cases, more than 100 of these were written every frame)
    • Certain primitives, e.g., int and short, are now read ~3× faster
    • The packet header for every packet is now half the size
    • MongoIDs are now 12 bytes instead of 24
    • byte[] arrays are now packed using LZ4, resulting in a major decrease in size when sent
    • On average, Fika now uses ~60% less bandwidth (highly situational)
    • Modders can use all these new methods in FikaSerializationExtensions
    • Most packets used in Fika have been updated to utilize these changes
    • Packets are now sent with a broadcast parameter from clients, allowing the server to process and forward them to everyone much faster without first interpreting the entire message
    • Many Fika-specific packets are now pooled and reuse instances instead of creating new ones each time, reducing both memory and CPU usage — especially noticeable during heavy gunfights
  • Restructured how armor damage is synced to be faster and use fewer allocations
  • Updated LiteNetLib
  • Updated several methods to use ReadOnlySpan<T> instead of byte[], reducing allocations
  • Changed the default VOIP settings to a 20-second speaking limit
  • Added missing logic for taking damage
  • Fixed a bug where bots would not take damage from environmental or border hazards (snipers, mines)
  • Updated the FreeCam overlay UI
  • Improved IndexOf() lookups when replicating shots
  • Added a new AdminSettings menu, allowing admins to change server settings from the main menu
  • Fixed a bug where aiming with the range finder would not replicate
  • The BTR getting hit by bullets is no longer calculated by clients, as it had no effect
  • Fika Chat has been remade from scratch
    • Pops up for 3 seconds when receiving a message (while still allowing movement)
    • No longer uses OnGUI()
    • Easier to interact with
  • Added a RaidAdminUI, accessible from the console
    • Allows raid hosts to see statistics from every client
    • Allows raid hosts to kick players from the raid (intended to solve AFK problems)
  • FreeCam now correctly returns behind your player, facing the original direction when toggled
  • Fixed a bug where firing OnlyReloadBarrel weapons (e.g., the double-barrel shotgun) did not correctly remove fired ammo, causing desync
  • UPnP and NAT Punching are now marked as Advanced options
  • Refactored how the server and client handle expected player counts
  • Fixed a bug where bots that fail to load remained unspawned indefinitely — they now spawn after 30 seconds if a client fails to load them
  • Reduced GC allocations in several places by replacing LINQ queries with for loops
  • Improved logic for dropping an equipped weapon (can still appear buggy for other players)
  • Fixed a bug where having any Unicode characters in the computer name would prevent the server from starting
  • VOIP has been slightly refactored for significantly improved stability and performance
  • SPT settings that were originally disabled by default are now enabled again (SPT chat bots, profile types, etc.)
  • Fixed several (harmless) bugs with the interpolation system due to Unity docs straight out lying

Don't miss a new Fika-Plugin release

NewReleases is sending notifications on new releases.