github project-fika/Fika-Plugin v1.0.0.0
Fika Release 1.0.0.0

latest releases: v1.0.2.0, v1.0.1.0
3 days ago

This release is for SPT 3.10.0

Patch Notes

  • Added Mounting support and it's properly synced between clients
  • Added Tripwire support and it's properly synced between clients
  • Added Bipods support and it's properly synced between clients
  • BTR is back: Re-implemented the BTR, and it's now more in line with live and also less buggy. All features of the BTR has been tested and working in an online environment.
  • Trader services (BTR, Lightkeeper) are now synced host <-> client
  • Lightkeeper is implemented and has been working sporadically during testing. Please be cautious that he might not always work as intended, be thorough in your bug reports as he is very hard to troubleshoot. Let the host enter with his beacon first for the optimal experience
  • Removed old airdrop code
  • Added new airdrop code, which is more in line with live and now looks much better between clients
  • Clients now get a proper notification if an airdrop flare fails
  • Clients in the BTR no longer lose armor durability while being a passenger
  • Native Sockets is now enabled by default
  • Massive amounts of changes to the inventory sync system, should now be more resilient to desync from mods and erratic player behaviour
  • Optimized the InteractionRaycast() on other players
  • Failed operations on bots should no longer get sent to other players, causing (harmless) errors in the logs
  • Several error messages are now more clear/verbose in the entire mod code base
  • Several packets should not longer incorrectly be sent if the player/bot is dead
  • Quests that requires you to extract in a specific zone should no longer fail with Auto Extract on
  • Added support for the new culling system, players outside a specific range should no longer render
  • Bundles are now forcefully loaded if you have picked up and attached an attachment to your weapon on reconnect, preventing a camera bug
  • Loading screen should be more responsive while waiting for other players to finish loading
  • Added a DEBUG option to spectate bots after everyone has died
  • Updated DogTag logic
  • Removed FindItem() and went back to BSG's implementation due to them fixing it
  • Removed DiscardLimits on other players, preventing bugs during inventory operations
  • Tweaked most HandControllers to be more optimized during initialization
  • Small refactor to OperationHandlers on host and clients
  • Reworked death sync: Holstered hand guns are now properly removed when discarding them on other corpses, held weapon is now properly removed when discarded, dead observed players are now less prone to WeaponPacket errors if they die during a reload
  • If a client fails an inventory operation they will no longer send it to the host
  • Lootable Container interactions are now more optimized
  • Other players no longer incorrectly switch weapons when looting a weapon from the ground while holding a knife
  • Switching weapons is no longer instant for other players, they will bring down their currently held item and bring out their new weapon as intended. This also means that eating/drinking now stops as intended rather than abrubtly ending
  • Weapons on other players that have emptied their mag should now bring back the bolt as intended
  • Fixed mines on clients not blowing up
  • UsableItemController is now replicated (Lightkeeper beacon)
  • Improved IP fetching: Your external IP is now retrieved once upon game start and cached rather than every raid. It will attempt to use 3 services and properly parse each address, making sure that we don't rely only on one service and that the IP is a valid IPv4 address
  • Updated Compass sync to be slightly faster
  • Failure to connect to a session is now handled properly and will return you to the Server Browser
  • Reworked damage sync to use less Reflection. Each player now has a unique PlayerBridge attached to their BodyPartCollider, meaning the code knows what to do in each scenario from the start rather than doing several arbitrary checks
  • Updated the Raid Settings window to use localized text
  • Added support to start the raid at a custom time and to customize the time flow in the Raid Settings (the game uses 1x as standard which equals to 7x time flow)
  • The health state of other players is now serialized and sent rather than creating a temporary controller and serializing it locally (effects are not synced upon reconnect currently)
  • Added several new localized messages
  • Flares now properly play the animation and are used up by other clients, preventing them from picking up an "unused" used flare
  • Optimized ping check
  • Pings now send your main profile name rather than your scav's name during scav runs
  • Major new feature: Added snapshot interpolation. Player movement is now sent at a default of 20x/s rather than every physics update (~60x/s). This means that the amount of data sent from every player has been cut to 1/3 of what it used to. Each client now has a local time that is used to interpolate received packets, meaning that it dynamically interpolates or extrapolates other players to make their movement much smoother and less jittery. This should make 200 ping feel a lot less laggier when looking at other players move. The new logic is also a lot less CPU intensive for the host. This also alleviates the problem where some players would "ice skate" after stopping for a bit. 2 new options are included for the interpolator:
    • Send Rate: How often per second packets should be sent (lower = less bandwidth used, slight less accurate interpolation, this only affects the host and is synced to clients and is recommended to be left at default), default: Low
      • Very Low = 10
      • Low = 15
      • Medium = 20
      • High = 30
    • Smoothing Rate: Local simulation is behind by Update Rate * Smoothing Rate. This guarantees that we always have enough snapshots in the buffer to mitigate lags & jitter during interpolation. Set this to 'High' if movement isn't smooth. Cannot be changed during a raid, default: Medium
      • Low = 1.5
      • Medium = 2
      • High = 2.5
  • Added a new setting: Shared Boss Experience
    • When enabled, you get ½ of the base experience when a teammate kills a boss
  • Our big packets (WeaponPacket, CommonPlayerPacket, GenericPacket, InventoryPacket) have received a substantial refactor. They are faster, use less memory, and are interpreted over the network at a much faster rate than before. This should make the experience much smoother, especially during intense firefights
  • Update the velocity on shells getting ejected from the firearm on other players to the correct amount
  • Pings should no longer be received if you have the option disabled
  • Added 2 new features to the free cam:
    • Drone Mode: When enables, the camera only moves on X and Z axis (horizontally)
    • Zoom: You can now zoom with the mouse-wheel
  • Fixed a bug where you could no longer enable your nightvision after enabling free cam with them enabled
  • Increased the super fast modifier of free cam from *8 to *12
  • Network statistic are printed to the log after a raid, showing packets sent/received, data sent/received and packet loss
  • Tweaked bot spawn logic to mitigate bots spawning on top of other players
  • Added debug commands to spawn items when running Fika in debug mode
  • DynamicAI now ignores exUsec (Rogues)
  • DynamicAI now deletes the current target of other AI if they are the target when being disabled
  • Major new feature: Added support for Transit. The mode has been tested and smoothly transports the group to another location. Currently it does not ensure that everyone is in the exfil, so make sure that everyone is inside or the game will glitch out. More improvements will come to the Transit system in the future. Keep in mind that changing maps with the Transit system can be unstable and is not recommended unless needed for quest progression
  • Updated sound logic for other players to mitigate Unity Warnings
  • Updated HandleTeammateKill() to use your own Time for quest checks
  • Improved the synchronization of the weapon used to kill another player, this should improve easy kill sharing substantially when using grenades and in general
  • Fixed a bug where the inventory controller generator ID would become desynced after a malfunction
  • Updated how Misfire malfunctions are handled on other players
  • The position and rotation of thrown items are now synced to all clients from the host, meaning they should always end up in the exact same position
  • Optimized the handling of full auto sound on weapon controllers
  • Added "Join as Spectator", allowing you to join a raid as a spectator from the start
  • New feature: Added a custom menu to the main menu where you can see the amount of players online, what level they are and whether they are in a raid or not. More features will come to this menu in the future. You can resize this in the F12 menu if it looks out of place on your resolution.
  • Fixed a bug where old FirearmControllers were not destroyed properly, causing a potential of infinite instances
  • Added a new option to the pinging system: Show Ping Range. When enabled the range between you and the ping is displayed under the ping.
  • Fika | Custom has been renamed to Fika | Pinging as it only contained options for the pinging system
  • The Send Item menu has been slightly redesigned and can now be dragged around
  • Improved the handling of bolt action reloads on other players
  • Pings and healthbars should now be more correctly positioned when aiming down a scope
  • Fixed several inconsistencies with firing a grenade launcher and how the ammo was handled on other clients
  • Reduced the amount of data used when performing a state check with the server by roughly ~95%
  • Tweaked bot reload to mitigate an issue where they were firing too soon, causing an ID mismatch on items due to latency
  • Updated the networking framework to the latest version, bringing minor improvements
  • Added support for viewing other profiles while loading the game, they should appear on the left side of the screen when a player joins. This might not work with modded items, please let us know if there are errors being thrown when using them
  • Added support for zombies (they might be holding their weapons incorrectly for clients, will attempt to fix later)
  • Apart from all the above, there's been tons of both major and small changes to the entire framework, bringing speed and memory optimizations while playing. This is our biggest update yet!

Note to modders

The method of adding packets has changed, to ease mod development. Subscribe to the FikaNetworkManagerCreatedEvent and/or FikaNetworkManagerDestroyedEvent to get the IFikaNetworkManager passed, which you can then check if it's a FikaServer or FikaClient. You then have access to these 2 methods to add packets on the instance passed:

RegisterPacket<T>(Action<T> handle)
RegisterPacket<T, TUserData>(Action<T, TUserData> handle)

Don't miss a new Fika-Plugin release

NewReleases is sending notifications on new releases.