What is a bypass shock? A Bypass is identical to a regular shock. It has adjustable compression and rebound dampening, and is also sensitive to velocity. In addition to these features, it has tubes that run along the outside of the shock that allow you to adjust the dampening based on position. (imported from here) How does it work? The internal piston of the shock works like normal, it dampens in both directions. But on select points of the shock there are tubes that allow fluid to move from one side of the shock and bypass the piston. On this tube is a one way check valve which is adjustable. In general, the dampening bypass valving starts softer, then gets more stiff as the shock progresses throughout it's travel. E.G Just for simplicity sake, I will say that a bypass shock has a piston that dampens a value of 5 units on the compression stroke. With a bypass shock, there are tubes that allow fluid to move around piston at a value lower than the initial piston dampening value, whatever is determined by the valve on the bypass tube. It will have a lower dampening through this zone, because the fluid will take the path of least resistance. In this case, the value of the first stage is 2. The next stage on this shock has a value of 3, then finally, there are no more bypass tube to allow fluid to move around the piston, so it ends up dampening with it's initial base value of 5. (imported from here) Why? This would allow for actual simulation of off road racing vehicles that seem to fairly popular. As of now, I have found no way to accurate way to model a progressively dampened shock. The landscape of BeamNG can be quite harsh, it would be enjoyable to create suspension for vehicles that can handle the terrain. How for BeamNG? I have thought about how one might implement into the code for a very long time and I still have not come up with an acceptable solution. It may be best to add an entirely new beam group, or possibly just add new parameters to the advanced beam settings. Maybe we could define dampening regions on the shock and it could possibly look like this? Code: [TABLE="width: 1574"] [TR] [TD="class: gutter"][RIGHT]1 2 3 4[/RIGHT] [/TD] [TD="class: code"]{"beamLimitSpring":8001000,"beamLimitDamp":1200}, {"beamSpring":0,"beamDamp":0,"beamDeform":500000,"beamStrength":1000000}, {"beamPrecompression":1, "beamType":"|BOUNDED", "beamLongBound":0.25, "beamShortBound":0.4}, ["N1","N2",{[COLOR=#ff8c00]"BeamDampZone":[0.0,0.1],[/COLOR]"beamDampRebound":6000,"beamDampVelocitySplit":0.15,"beamDampFast":3200,"beamDampReboundFast":4200}],[/TD] [/TR] [/TABLE] Call it something like "BeamDampZone"(come up with a better name) as a parameter that defines "beamZone":[0.0,0.1], The beam will only dampening from 0.0 compression to 0.1 compression. The idea is that you could add multiple "BeamDampZone"s each one with a different section of the shock that you could custom tune to your liking. I didn't read any of that... Could we add progressive shocks?
A workaround: (imported from here) Support beam with low precompression, so it gets activated last. Add LOW values to the "beamLimitDamp" from the regular shock. Make a new beam just for the springs, and another one for the hard bumps. Let's say if you have your suspension travel 0.45*length before hitting the hard limit, you should set the hard bumps to: //limits {"beamDamp":0}, //spring and damp high values {"beamLimitSpring":3001000,"beamLimitDamp":10000}, {"beamSpring":0,"beamDeform":"FLT_MAX","beamStrength":"FLT_MAX"}, {"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":0.0, "beamShortBound":0.45}, ["node1","node2",{"beamDampRebound":0,"beamDampVelocitySplit":0.0,"beamDampFast":0,"beamDampReboundFast":0}], ["node1","node2",{"beamDampRebound":0,"beamDampVelocitySplit":0.0,"beamDampFast":0,"beamDampReboundFast":0}], If you want your dampers to actuate to the 2nd stage at half the travel (0.45*length) you should do: //dampers {"beamDamp":2600}, //KEEP THE DAMP LOW, this is whats ADDED to the BeamDamp value {"beamLimitSpring":0,"beamLimitDamp":1100}, {"beamSpring":0,"beamDeform":"FLT_MAX","beamStrength":"FLT_MAX"}, {"beamPrecompression":1.0, "beamType":"|BOUNDED", "beamLongBound":0.0, "beamShortBound":0.225}, ["node1","node2",{"beamDampRebound":2900,"beamDampVelocitySplit":0.05,"beamDampFast":2200,"beamDampReboundFast":2000}], ["node1","node2",{"beamDampRebound":2900,"beamDampVelocitySplit":0.05,"beamDampFast":2200,"beamDampReboundFast":2000}], then last but not least add a support beam with a little more damping. {"beamDamp":6000}, {"beamLimitSpring":0,"beamLimitDamp":0}, {"beamSpring":0,"beamDeform":"FLT_MAX","beamStrength":"FLT_MAX"}, {"beamPrecompression":0.55, "beamType":"|SUPPORT", "beamLongBound":9.2, "beamShortBound":9.0}, ["node1","node2",{"beamDampRebound":4000,"beamDampVelocitySplit":0.05,"beamDampFast":3000,"beamDampReboundFast":3000}], ["node1","node2",{"beamDampRebound":4000,"beamDampVelocitySplit":0.05,"beamDampFast":3000,"beamDampReboundFast":3000}], That's 1 shock.
Support beams don't differentiate compression and rebound dampening. If you actually make the dampening stiff enough to have an effect for making your suspension absorb bumps, then the rebound dampening is fixed to that same dampening. Also, I have tried using the BeamDampLimit of Bounded beams, and I have the same issue. As soon as the shock travels within this effective region, the shock damping is active for both compression and rebound. This only works if you want to add progressive spring force, not dampening. So this is just going to be another one of those lost threads?
Or, this could also be achieved by making it so beamlimitdamp is sensitive to both Compression and Rebound Stroke. As of right now, any dampening that is used to slow the compression of the shock, hinders the compression stroke from being able to extend back to it's native state.
We've read it . Thanks philzilla for the explanation. We'll think about a way to enable designs of shocks such as the one you've described.
My opinion is that having proper control over the damper dynamics would greatly improve vehicle behavior to be more realistic. Like the tires, the dampers really need to be modeled separately if you want to mimic reality. It's very simple to model using velocity/force. 20 user defined values for each compression and rebound damping would be sufficient to make these as realistic as possible. You can create a very realistic model in just a few hours. The next issue would just be getting the actual data as not many people have access to the actual vehicles dampers, let alone a shock dynamometer. For basic street vehicles this is less important as the dampers are more basic and do not require such complex damping curves. But for performance vehicles the dampers can make or break the vehicle (literally). The Polo WRC in this game is one example where it is greatly let down by having basic dampers. P.S. I have access to some shock dynamometer data from basic rally shocks for Subarus and Mitsubishis mainly. These shocks range anywhere from $5,000 to $15,000. The last set I personally owned were in the $10,000 range.