diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js
index 6c9faae48cc57e5603396705f553ff191af073b9..c43f32f124e7662adfbcc51e6d86df9f864cea35 100644
--- a/src/endWeek/economics/neighborsDevelopment.js
+++ b/src/endWeek/economics/neighborsDevelopment.js
@@ -2554,7 +2554,27 @@ App.EndWeek.neighborsDevelopment = function() {
 
 					for (const candidate of validFSes) {
 						if (arc2[candidate] > random(0, 200) - influenceBonus) {
+							// equal weight by default (at normal difficulty, or the arc is neither player nor rival)
 							usableCandidates.push({arc2, candidate});
+							if (arc2.direction === 0) {
+								// easier than normal: player FS gets bonus chance
+								if (V.baseDifficulty < 3) {
+									usableCandidates.push({arc2, candidate});
+								}
+								// very easy: player FS gets another bonus chance
+								if (V.baseDifficulty < 2) {
+									usableCandidates.push({arc2, candidate});
+								}
+							} else if (arc2.rival > 0) {
+								// harder than normal: rival FS gets bonus chance
+								if (V.baseDifficulty > 3) {
+									usableCandidates.push({arc2, candidate});
+								}
+								// nightmare: rival FS gets another bonus chance
+								if (V.baseDifficulty > 4) {
+									usableCandidates.push({arc2, candidate});
+								}
+							}
 						}
 					}
 				}