If anyone is interested, I made a few modifications to this to suit my preferences to fit into a hardcore run.
TLDR: you are less likely to die, but will still get into really bad situations if you crash or someone crashes into you.
no damage in car/bike collisions when the delta speed is under 15km/h (prevents taking damage when you hit a pedestrian)
minimum delta speed required for bleed chance to activate
damage clamped at 80% of player's max health, and no instant deaths, applies to car, bike, walking
Recommended settings:
Car speed: 100 Car random: 10 Car bleed: 30 Bike speed: 80 Bike random: 20 Bike bleed: 40 Walker speed: 50 Walker random: 20 Walker bleed: 50 public final static func WalkerDeathCalculation(player: wref<PlayerPuppet>, vehicleSpeed: Float) -> Void {
let settings = new DeadlyRoadsSettings(); let rand: Float = RandRangeF(0.0, settings.walkerDamageRand); let damage = vehicleSpeed + rand;
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health); let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
public final static func automobileDeathCalculation(player: wref<PlayerPuppet>) -> Void {
let settings = new DeadlyRoadsSettings(); let rand: Float = RandRangeF(0.0, settings.automobileDamageRand); let damage = player.deltaSpeed + rand;
if player.deltaSpeed < 15.0 { // speed difference too low to actually matter return; }
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health); let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
if PlayerDevelopmentSystem.GetData(player).IsNewPerkBoughtAnyLevel(gamedataNewPerkType.Body_Right_Milestone_1) {
public final static func motorcycleDeathCalculation(player: wref<PlayerPuppet>) -> Void {
let settings = new DeadlyRoadsSettings(); let rand: Float = RandRangeF(0.0, settings.motorcycleDamageRand); let damage = player.deltaSpeed + rand;
if player.deltaSpeed < 15.0 { // speed difference too low to actually matter return; }
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health); let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
if PlayerDevelopmentSystem.GetData(player).IsNewPerkBoughtAnyLevel(gamedataNewPerkType.Body_Right_Milestone_1) {
Just a suggestion that might add some interesting realisms dimensions. I was wondering if its possible that after an accident there is a percentage chance of waking up at the nearest RipperDoc who charges you money for the revival. Or potentially wake up in the back of a Scav van or dumped in an alley naked, robbed and with half your chrome ripped out. It would be nice if you could get arrested by the cops but I understand there is no existing implementation of any of that functionality.
That would make bad driving decisions a much higher risk activity.
Not sure if somebody reported it already, but with this mod, in the last mission with Rogue, when the AV gets hit, it's inst-death for V, even if infinite health or god mode installed. Most likely it is considered as a deadly collision... Took me a while to figure this one out!
This mod is awesome, but seems to ignore when you have cyberware or perks that make you immune to knockdowns. Like now we have a lot more motivation to be immune to knockdowns because we can die from crossing the road and getting hit by a car, and that's great! But when we get that cyberware or perk that *says* we're immune to knockdowns no, we're really not, and we can still die crossing the road getting hit by a car.
So this doesn't seem to be compatible with the Car Modification Shop? At least personally whenever I use that mod my cars and bikes sometimes lose their mass and become like rubber so that if I hit an obstacle that's supposed to break my vehicle just hits and stop or even bounces off. Kinda negates the purpose of this mod.
No it wouldn't... whichever one loads first takes precedence. It's weird though, I have both installed in my current playthrough and I haven't had that weird bouncy car problem in my newest playthrough.
It helped for me to make Car Modification Shop have priority. Made it go from 75% bounce + when direct to 20% bounce only when hitting something sideways at 45 degree angle. It seems turning bleed effect off might help it further.
I just ditched the modification shop. It's helpful but after the third time Beast bounced off a tree during the badlands race I was just fed up with the whole thing.
Well I got rid of the car modification shop and it's not happening as often but I'm still occasionally seeing this issue with destructible obstacles being indestructible when I'm travelling at speed, is it related to this mod or is something else causing it? Because I can't figure out how to even test what the problem is since it's not consistent enough.
I am not sure what is causing it but it happened even with deadly roads removed and only Car modification shop for me. So IDK if it is CMS or if it is a vanilla issue or what.
With car modification shop in conjunction with this mod there is a bug where the car bounces instead of crashes, also when the car is not modified by the other mod. The crashes, usually at an angle, are not counted as crashes as the car takes no damage and other mods like TANSTAAFL's crash payment system reveals that it doesn't count the de-celeration but does register the car hit something. Treated as a 0KM/H crash. Please fix.
hello, thanks for the mod :) during a car accident there is a flashing red filter which remains for quite a long time after the accident. I would like to know if it is possible to remove it? I don't know if it's the mod or something else that's causing this.
Hello, thanks for answer. I don't found "blinding effect", I've "blinding probability" but it change how i've accident no? I search on vanilla settings but don't found too :( Can you tell me where you find this please? Thanks
It's the bleeding effect, when you crash hard enough to take damage there's a chance you'll get the status effect "Bleeding" which does small amounts of damage over time. In the Deadly Roads settings each of the categories (Driving cars, driving motorcycles, walking) has a slider labelled, "Bleeding chance". Whatever that is set to is the percentage chance that the crash will apply the effect to you. Since it's an annoying effect I personally keep he Bleeding Chance for driving a car set to 0%.
I really love this mod, been using it for 2 playthroughs now. My only criticism is that it's extremely goofy to be in a well-armored car and still take damage from low-speed collisions or even more minor impacts. I've tried various settings but haven't found a satisfying solution. Otherwise, all is good and I look forward to your future work.
165 comments
On in particular is "Chippin' in". (you'll understand, i'm not gonna spoil ;) )
However, excellent mod, greatly enhance gameplay when, like me, you play it full sim / realism.
Thanks for the mod, OP.
TLDR: you are less likely to die, but will still get into really bad situations if you crash or someone crashes into you.
Recommended settings:
Car speed: 100
Car random: 10
Car bleed: 30
Bike speed: 80
Bike random: 20
Bike bleed: 40
Walker speed: 50
Walker random: 20
Walker bleed: 50
public final static func WalkerDeathCalculation(player: wref<PlayerPuppet>, vehicleSpeed: Float) -> Void {
let settings = new DeadlyRoadsSettings();
let rand: Float = RandRangeF(0.0, settings.walkerDamageRand);
let damage = vehicleSpeed + rand;
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health);
let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
DeadlyRoads.CrashDamage(player, MinF(health * damage / settings.walkerDeathSpeed * 0.6, maxDamage));
if damage >= (settings.walkerDeathSpeed * 0.15) {
DeadlyRoads.CrashBleeding(player, settings.walkerBleedingChance);
}
}
public final static func automobileDeathCalculation(player: wref<PlayerPuppet>) -> Void {
let settings = new DeadlyRoadsSettings();
let rand: Float = RandRangeF(0.0, settings.automobileDamageRand);
let damage = player.deltaSpeed + rand;
if player.deltaSpeed < 15.0 {
// speed difference too low to actually matter
return;
}
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health);
let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
if PlayerDevelopmentSystem.GetData(player).IsNewPerkBoughtAnyLevel(gamedataNewPerkType.Body_Right_Milestone_1) {
DeadlyRoads.CrashDamage(player, MinF(health * damage / settings.automobileDeathSpeed * 0.6, maxDamage));
} else {
DeadlyRoads.CrashDamage(player, MinF(health * damage / settings.automobileDeathSpeed, maxDamage));
};
if damage >= (settings.automobileDeathSpeed * 0.3) {
DeadlyRoads.CrashBleeding(player, settings.automobileBleedingChance);
}
}
public final static func motorcycleDeathCalculation(player: wref<PlayerPuppet>) -> Void {
let settings = new DeadlyRoadsSettings();
let rand: Float = RandRangeF(0.0, settings.motorcycleDamageRand);
let damage = player.deltaSpeed + rand;
if player.deltaSpeed < 15.0 {
// speed difference too low to actually matter
return;
}
let health: Float = GameInstance.GetStatPoolsSystem(player.GetGame()).GetStatPoolMaxPointValue(Cast<StatsObjectID>(player.GetEntityID()), gamedataStatPoolType.Health);
let maxDamage: Float = health * 0.8; // Cap damage at 80% of max health
if PlayerDevelopmentSystem.GetData(player).IsNewPerkBoughtAnyLevel(gamedataNewPerkType.Body_Right_Milestone_1) {
DeadlyRoads.CrashDamage(player, MinF(health * damage / settings.motorcycleDeathSpeed * 0.6, maxDamage));
} else {
DeadlyRoads.CrashDamage(player, MinF(health * damage / settings.motorcycleDeathSpeed, maxDamage));
};
if damage >= (settings.motorcycleDeathSpeed * 0.3) {
DeadlyRoads.CrashBleeding(player, settings.motorcycleBleedingChance);
}
}
DeadlyRoads.CrashDamage(player, health * damage / settings.automobileDeathSpeed * 0.6);
to
DeadlyRoads.CrashDamage(player, health * damage / settings.automobileDeathSpeed * 0.1);
then go into the settings.reds and replace
@runtimeProperty("ModSettings.mod", "Deadly Roads")
@runtimeProperty("ModSettings.category", "DRAutomobileCategory")
@runtimeProperty("ModSettings.displayName", "DRAutomobileDeathSpeedName")
@runtimeProperty("ModSettings.description", "DRAutomobileDeathSpeedDesc")
@runtimeProperty("ModSettings.step", "10.0")
@runtimeProperty("ModSettings.min", "0.0")
@runtimeProperty("ModSettings.max", "100.0")
let automobileDeathSpeed: Float = 80.0;
to this
@runtimeProperty("ModSettings.mod", "Deadly Roads")
@runtimeProperty("ModSettings.category", "DRAutomobileCategory")
@runtimeProperty("ModSettings.displayName", "DRAutomobileDeathSpeedName")
@runtimeProperty("ModSettings.description", "DRAutomobileDeathSpeedDesc")
@runtimeProperty("ModSettings.step", "1.0")
@runtimeProperty("ModSettings.min", "0.0")
@runtimeProperty("ModSettings.max", "300.0")
let automobileDeathSpeed: Float = 200.0;
change the settings in game and boom ur gtg Chombatta!
Just a suggestion that might add some interesting realisms dimensions. I was wondering if its possible that after an accident there is a percentage chance of waking up at the nearest RipperDoc who charges you money for the revival. Or potentially wake up in the back of a Scav van or dumped in an alley naked, robbed and with half your chrome ripped out. It would be nice if you could get arrested by the cops but I understand there is no existing implementation of any of that functionality.
That would make bad driving decisions a much higher risk activity.
Took me a while to figure this one out!
Hearing this is also what causes instantly dying when Takemura jacks into your bio-monitor in Act II.
I hope OP or someone can make this mod be off during these two missions.