How you would implement wet and dirty materials or material overlays that you can clean like in PowerWash Simulator.
I've never implemented any of this stuff before. But from my understanding there's two basic ways you could solve this problem.
The simplest solution would be to just to just put simple billboards with "wet" or "clean" materials on top of the surfaces. This has the real world equivalent of placing an animatable sticker on top of surfaces. This works great for when the effects your placing are small, and self contained (they don't need to interact with other entities of the same type to achieve their desired effect). Bullet holes, in FPSs, are ideal candidates for decals. As soon the effect needs to know where it is on a surface, or know about other nearby decals, or must curve around complicated meshes, you're out of luck unless you make your decal system much more complicated and likely much less performant.
Textures and an alpha mask
What's probably happening in PowerWash, is that there are two sets of textures for every cleanable object, and then a texture mask which determines which set are visible and where. When you power wash something, you're simply coloring the alpha mask from white to black (or vice versa) which changes which set of textures (dirty or clean) are visible. From a technical POV, the hardest part of this technique would be the projection from 3D world space to 2D texture space when you have to find out where on the object's texture you're spraying.
There seems to be more complicated effects happening in PowerWash which adds to the main effect. When you spray objects, they seem to briefly become wet, drip, and then dry. There's probably another texture which represents the wetness of every object, which gets set by the powerwash but then fades back to its original dry state (texture value) overtime.
This method is much more powerful because you have access to all the mesh and textures of whatever object you're on (unlike with decals). But it means you have to have duplicate sets of textures for every object which could get very expensive.
DMGregory mentions that there's ways to reduce the memory cost of this approach by tiling and re-using materials