Lag Compensating Weapons (LCWeapons / lcAS)

  • Hey - turns out IRC is out and something a little more modern has taken it's place... A little thing called Discord!

    Join our community @ https://discord.gg/JuaSzXBZrk for a pick-up game, or just to rekindle with fellow community members.

'//3iRd(o)

Administrator
Sep 19, 2001
5,452
63
Dorset, UK
tl;dr;
  • Lag Compensating Weapons (LCWeapons / LC) is a fairly new mod written by Higor (CacoFFF) aiming to balance client and server side processing of hitscan weapons.
  • In Pug matches, LCWeapons is only enabled when the Pug game mode is "lcAS". Please be sure to check with all signees before changing between modes (i.e. if someone doesn't like lcAS, then please mediate between all players to agree a mode).
  • Only the Shock Rifle (from 31/01) and Sniper Rifle (from 28/01) are replaced.
  • If you've got some weird binds, or a read-only user.ini, then LC won't be able to automatically augment your existing weapon binds... Check out the last thread I talked about this topic and update your binds!
  • Clue's in the name... This mostly affects Weapons. It does not alter your movement (i.e. this is not a "NewNet" replacement), it only samples it to verify aim is within acceptable tolerance.
  • However! It will add predictive modelling of other players and projectiles, allowing those with higher pings to have a better idea of what's happening without their normal latency. If you feel this is adversely affecting your own game play, then you can alter the prediction cap in milliseconds using a mutate command below:
  • You can toggle LC client side processing utilising the following mutate commands (mimicking ZeroPingPlus ability to enable/disable client-side):
Code:
mutate zp_off - Disables lag compensation code on your client.
mutate zp_on - Enables lag compensation code on your client.
mutate prediction disable - Disables actor prediction.
mutate prediction default - Enables actor prediction (server defined defaults).
mutate prediction X - Where X is a numerical value 1-150, in milliseconds.

The full story:

Thought it best we have a thread here about this topic, since a preview build has only been an option for the last few days (since 28 Jan 2021) and there's already lots of misinformation about what it's doing / not doing out there...

So, first of all:

Lag Compensating Weapons or "LCWeapons" is a "lightweight and versatile lag compensator for hitscan weapons in Unreal Tournament."

And while some may just say "is this not just ZeroPing?", It's unfair to directly compare this implementation directly to ZP, as there's quite a few different things going on under the hood, and it's far more extensible than the various ZP predecessors.

Similar to using ZP however, any player can opt-out of it's use and return to normal server-side only calculation of hits (see mutate commands at the top of this post).

Probably need to wind things back a little for anyone already lost here:

Many modern first-person shooters utilise client-side processing to understand whether a target (enemy) is being fired upon, and negotiate whether damage is being dealt.

UT99 by default is quite different, and relies on your client sending some information about where you are, how you're aiming and what you're firing, over to the server which then decides based on all the other factors about the target player you're aiming at, whether it's actually hitting them or not, and whether damage is really being dealt (compared to sometimes your client reporting phantom damage / explosions).

LC takes a balanced view of things and negotiates with the server whether it's safe to take the client-view of things, which results in players with higher ping being able to shoot and hit similar to their lower-ping counterparts (well - if they can actually aim in the first place, that is :arsemiss:).

With the explanation out of the way... What does that mean for us?

Well, by default LCWeapons replaces quite a few different weapons, and so I've added some flexibility into it so we can toggle particular weapons on and off.

Right now, only the Shock Rifle and Sniper Rifle are enabled to be replaced with LC variants, and ONLY when the "lcAS" game mode is chosen on a pug, or if the server is in public mode. There have been no changes to the Enforcer, Mini, Pulse or any other weapons - they largely remain to operate as they have done for the last 14 or so years. As a bonus - the Shock Rifle should render the shock ball as if it were lag compensated, so this should make shock combos a bit easier for high-ping'ers. :shock:

The default LC implementation of the new Sniper Rifle aims to fix some issues with being able to headshot crouched players; however I have added a toggle to revert this behaviour back to defaults, as I can imagine this might be too much of a change in behaviour for some.

There's an extensive history of the mod's evolution over at ut99 - LCWeapons (build 0023) - UT99.org | Unreal Tournament Community

If there's more info to report on our usage of this, I'll update this post.

---
Updated 31/01:
  • Kill messages are overridden for our ancient LAS HUD to pick them up correctly again.
  • The replaced weapons (Snipers, Shocks) which were supposed to be "non-rotating" in the world are once again not rotating.
 
Last edited:
  • Like
Reactions: Samy