Skip to content

Conversation

@AdamTadeusz
Copy link
Contributor

@AdamTadeusz AdamTadeusz commented Jan 13, 2026

Description

Reasoning behind the solution: https://whiteboard.cloud.microsoft/me/whiteboards/d01886c3-9a3d-419f-a06d-f1840c62ed6b

image

Latest test video

bDoServerEffects.mp4

Toolchain

  • Windows MSVC VS2022

Linked Issues

@AdamTadeusz AdamTadeusz requested a review from a team January 13, 2026 11:38
@sunzenshen
Copy link
Contributor

Friendly fire blood decals still aren't being rendered on my test setup, though maybe this is a quirk of the multiple clients connecting to a server on the same machine test setup:

client-bleed-teammates-0.mp4

@AdamTadeusz
Copy link
Contributor Author

Thats my b I only tested with bots

@AdamTadeusz
Copy link
Contributor Author

testing some more looks like this applies to enemies as well

@AdamTadeusz
Copy link
Contributor Author

AdamTadeusz commented Jan 22, 2026

Before and After

testingBlood.mp4

@AdamTadeusz AdamTadeusz marked this pull request as draft January 22, 2026 12:57
@AdamTadeusz AdamTadeusz removed the request for review from sunzenshen January 22, 2026 13:06
@AdamTadeusz
Copy link
Contributor Author

ok the more I look at this the more confused I am

@AdamTadeusz AdamTadeusz marked this pull request as ready for review January 23, 2026 16:14
@AdamTadeusz AdamTadeusz changed the title Teammates should bleed when shot Players should bleed when shot by other players Jan 23, 2026
sunzenshen
sunzenshen previously approved these changes Jan 24, 2026
Copy link
Contributor

@sunzenshen sunzenshen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: One thing I noticed was that it seems like after death the decals all disappear during this demo footage?

blood-decal-shared-perspective.mp4

I don't consider this a blocker, as the decals showing consistently when alive is more important than the decals showing when dead, but curious to see if other notice this phenomenon.

The commit seems easy to revert so I'm curious as to what this would look like in a live multiplayer session.

@sunzenshen sunzenshen requested a review from a team January 24, 2026 04:34
@AdamTadeusz
Copy link
Contributor Author

AdamTadeusz commented Jan 24, 2026

I think what happened here is that you shot the player model in a limb, so the model was changed to a leg-less model, so pPlayer->SnatchModelInstance( this ); in C_HL2MPRagdoll::CreateHL2MPRagdoll fails because of the difference in the player and ragdoll model. If the player model is set to the leg-less model before the ragdoll is created then the same problem still occurs (not sure if snatching the model instance is even attempted in those instances), and actually ognt has this exact problem. I am planning to take a look at solutions to this in the better client side ragdolls branch

@AdamTadeusz
Copy link
Contributor Author

Nagrywanie.ekranu.2026-01-24.110112.mp4

Agiel
Agiel previously approved these changes Jan 31, 2026
@DESTROYGIRL
Copy link
Contributor

Don't merge this yet I need to check something

Copy link
Contributor

@DESTROYGIRL DESTROYGIRL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since #1615 neo_npc_targetsystem uses firebullets, however since it's a server only entity it intentionally created no effects. This will break that (though the branch for this PR is not up to date, so you will not see it). Stated here

// This intentionally should not create any tracer / decal effects being a server side only operation

I suggest you add the bDoServerEffects bool as a parameter to FireBulletsInfo_t enabled on default then make sure it's turned off for neo_npc_targetsystem

@AdamTadeusz
Copy link
Contributor Author

which effects are you trying to hide?

@DESTROYGIRL
Copy link
Contributor

Tracers & decals. The tracers that jeff actually fires are created seperately. If we used this method the tracers would not follow the expected shot trajectory

@AdamTadeusz AdamTadeusz dismissed stale reviews from Agiel and sunzenshen via dd22eeb February 1, 2026 09:57
Copy link
Contributor

@DESTROYGIRL DESTROYGIRL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably would have been more tidy adding the var as part of FireBulletsInfo_t like we did with penetration(?) but works fine here.

@DESTROYGIRL DESTROYGIRL requested a review from a team February 1, 2026 12:42
@DESTROYGIRL
Copy link
Contributor

Epic linux failure @AdamTadeusz

Copy link
Contributor

@sunzenshen sunzenshen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally forgot about the linux build error. 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Teammates should bleed

4 participants