diff --git a/ChaosMod/ChaosMod.vcxproj b/ChaosMod/ChaosMod.vcxproj
index 6d21948f5..a78db8967 100644
--- a/ChaosMod/ChaosMod.vcxproj
+++ b/ChaosMod/ChaosMod.vcxproj
@@ -151,6 +151,7 @@
+
diff --git a/ChaosMod/Effects/db/Peds/PedsNearbyFlee.cpp b/ChaosMod/Effects/db/Peds/PedsNearbyFlee.cpp
index 13242f4fc..16d7230e7 100644
--- a/ChaosMod/Effects/db/Peds/PedsNearbyFlee.cpp
+++ b/ChaosMod/Effects/db/Peds/PedsNearbyFlee.cpp
@@ -19,6 +19,7 @@ static void OnStart()
REGISTER_EFFECT(OnStart, nullptr, nullptr, EffectInfo
{
.Name = "All Nearby Peds Are Fleeing",
- .Id = "peds_flee"
+ .Id = "peds_flee",
+ .IncompatibleWith = { "peds_reckless" }
}
);
\ No newline at end of file
diff --git a/ChaosMod/Effects/db/Peds/PedsReckless.cpp b/ChaosMod/Effects/db/Peds/PedsReckless.cpp
new file mode 100644
index 000000000..40529e4b9
--- /dev/null
+++ b/ChaosMod/Effects/db/Peds/PedsReckless.cpp
@@ -0,0 +1,38 @@
+#include
+
+static std::unordered_map crazyPeds;
+
+static void OnTick()
+{
+ for (auto ped : GetAllPeds())
+ {
+ if (ped == PLAYER_PED_ID() || !IS_PED_IN_ANY_VEHICLE(ped, false) || crazyPeds[ped])
+ continue;
+
+ Vector3 vec = GET_ENTITY_COORDS(ped, false);
+ TASK_SMART_FLEE_COORD(ped, vec.x, vec.y, vec.z, 9999.f, -1, false, false);
+ // TASK_VEHICLE_DRIVE_WANDER(ped, veh, 100.f, 0x423C0B6C);
+
+ SET_DRIVE_TASK_DRIVING_STYLE(ped, 0x423C0A6C);
+ SET_DRIVE_TASK_MAX_CRUISE_SPEED(ped, 200.f);
+ SET_DRIVER_ABILITY(ped, 1.f);
+ SET_DRIVER_AGGRESSIVENESS(ped, 1.f);
+
+ crazyPeds[ped] = true;
+ }
+}
+
+static void OnStop()
+{
+ crazyPeds.clear();
+}
+
+// clang-format off
+REGISTER_EFFECT(nullptr, OnStop, OnTick, EffectInfo
+ {
+ .Name = "Reckless Drivers",
+ .Id = "peds_reckless",
+ .IsTimed = true,
+ .IncompatibleWith = { "traffic_gtao" }
+ }
+);
\ No newline at end of file
diff --git a/ChaosMod/Effects/db/Vehs/VehsGTAOTraffic.cpp b/ChaosMod/Effects/db/Vehs/VehsGTAOTraffic.cpp
index aa0ae12b4..a91f27f29 100644
--- a/ChaosMod/Effects/db/Vehs/VehsGTAOTraffic.cpp
+++ b/ChaosMod/Effects/db/Vehs/VehsGTAOTraffic.cpp
@@ -42,6 +42,7 @@ REGISTER_EFFECT(nullptr, nullptr, OnTick, EffectInfo
{
.Name = "Traffic Magnet",
.Id = "traffic_gtao",
- .IsTimed = true
+ .IsTimed = true,
+ .IncompatibleWith = { "peds_reckless" }
}
);
\ No newline at end of file
diff --git a/ConfigApp/Effects.cs b/ConfigApp/Effects.cs
index b03e5efe6..a0c12a343 100644
--- a/ConfigApp/Effects.cs
+++ b/ConfigApp/Effects.cs
@@ -415,6 +415,7 @@ public enum EffectTimedType
{ "screen_realfp", new EffectInfo("Real First Person", EffectCategory.Screen, true) },
{ "screen_hueshift", new EffectInfo("Hue Shift", EffectCategory.Screen, true) },
{ "player_copyforce", new EffectInfo("Use The Force", EffectCategory.Player, true, true) },
+ { "peds_reckless", new EffectInfo("Reckless Drivers", EffectCategory.Peds, true) },
};
}
}