diff --git a/src/SecExp/SecExpBackwardCompatibility.tw b/src/SecExp/SecExpBackwardCompatibility.tw
index 0b69f5c5cb6180df0978eaa336aa0f30cc08b258..3ee639f803ff010ce945534765d2165f8925cbd5 100644
--- a/src/SecExp/SecExpBackwardCompatibility.tw
+++ b/src/SecExp/SecExpBackwardCompatibility.tw
@@ -103,6 +103,12 @@
 <<if ndef $allowPrestigeFromBattles>>
 <<set $allowPrestigeFromBattles = 1>>
 <</if>>
+<<if ndef $battleFrequency>>
+<<set $battleFrequency = 1>>
+<</if>>
+<<if ndef $rebellionSpeed>>
+<<set $rebellionSpeed = 1>>
+<</if>>
 
 /* edicts */
 <<if ndef $edictsUpkeep>>
diff --git a/src/SecExp/attackGenerator.tw b/src/SecExp/attackGenerator.tw
index e1ff70090df0406f800fc7cce49e4fbd2bc058b2..f8269dbb4f4eeb2734a1b61ebc662dd2cc830035 100644
--- a/src/SecExp/attackGenerator.tw
+++ b/src/SecExp/attackGenerator.tw
@@ -16,13 +16,15 @@
 	<<else>>
 		<<set _attackChance =20>>
 	<</if>>
-	<<if $lastAttackWeeks >= 15>>
-		<<set _attackChance += 5>>
-	<</if>>
 	<<if $hasFoughtOnce == 1>>
 		<<set _attackChance = 25>>
 	<</if>>
+	<<if $lastAttackWeeks >= 10>>
+		<<set _attackChance += 5>>
+	<</if>>
 <</if>>
+/* battle frequency */
+<<set _attackChance *= $battleFrequency>>
 
 <<if $forceBattle == 1 && $forceRebellion != 1 && $foughtThisWeek == 0>>
 	<<set _attackChance = 100>>
diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw
index 8ee016fc43eb119051a4b0396b31adefb26b14f0..1d875c1b62672edb78f2b15d9ae268eba3a795f8 100644
--- a/src/SecExp/attackOptions.tw
+++ b/src/SecExp/attackOptions.tw
@@ -472,22 +472,9 @@ Offensive Tactics
 	<<goto "attackReport">>
 <</link>>
 <br>
-/* calculates bribe cost */
-<<if $week <= 30>>
-	<<set $bribeCost = 5000 + $baseBribePerAttacker * $attackTroops>>
-<<elseif $week <= 30>>
-	<<set $bribeCost = 10000 + $baseBribePerAttacker * $attackTroops>>
-<<elseif $week <= 30>>
-	<<set $bribeCost = 15000 + $baseBribePerAttacker * $attackTroops>>
-<<elseif $week <= 30>>
-	<<set $bribeCost = 20000 + $baseBribePerAttacker * $attackTroops>>
-<<elseif $week <= 30>>
-	<<set $bribeCost = 25000 + $baseBribePerAttacker * $attackTroops>>
-<</if>>
-<<if $majorBattle == 1>>
-	<<set $bribeCost *= 3>>
-<</if>>
 
+/* calculates bribe cost */
+<<calcBribe>>
 <<link "Attempt to bribe">>
 	<<set $battleResult = 1>>
 	<<if $hasFoughtOnce == 0>>
diff --git a/src/SecExp/rebellionGenerator.tw b/src/SecExp/rebellionGenerator.tw
index 4905a6cd146db452e0cf126ad730022ddc6be03b..3134e57c7064ce5e2f2c0ba88d5965af1d3da39c 100644
--- a/src/SecExp/rebellionGenerator.tw
+++ b/src/SecExp/rebellionGenerator.tw
@@ -132,9 +132,9 @@
 <</if>>
 <<set _roll = random(1,_slave + _citizen)>>
 <<if $brainImplant == 106>>
-	<<set _slave = Math.trunc(_slave * 0.2), _citizen = Math.trunc(_citizen * 0.2)>>
+	<<set _slave = Math.trunc(_slave * 0.5 * $rebellionSpeed), _citizen = Math.trunc(_citizen * 0.5 * $rebellionSpeed)>>
 <<else>>
-	<<set _slave = Math.trunc(_slave * 0.75), _citizen = Math.trunc(_citizen * 0.75)>>
+	<<set _slave = Math.trunc(_slave * $rebellionSpeed), _citizen = Math.trunc(_citizen * $rebellionSpeed)>>
 <</if>>
 <<if _roll <= _slave>>
 	<<if random(1,100) < _slave>>
diff --git a/src/SecExp/secExpOptions.tw b/src/SecExp/secExpOptions.tw
index 46015b30d9a17a4c4fac2d33fd59d0484271991b..b0a5e5b885ae2347923cc117c2053487809fa8ff 100644
--- a/src/SecExp/secExpOptions.tw
+++ b/src/SecExp/secExpOptions.tw
@@ -185,7 +185,22 @@ __Rebellions__:
 		<</link>>
 	<</if>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;//Enable/disable rebellions.//
+	<br>
 	<<if $rebellionsEnabled == 1>>
+		<<if $rebellionGameOver == 0>>
+			Rebellions can cause gameover is @@.red;FALSE@@.
+			<<link "Activate game loss in case of rebellions succeeding">>
+				<<set $rebellionGameOver = 1>>
+				<<goto "secExpOptions">>
+			<</link>> 
+		<<elseif $rebellionGameOver == 1>>
+			Rebellions can cause gameover is @@.cyan;TRUE@@.
+			<<link "Deactivate game loss in case of rebellions succeeding">>
+				<<set $rebellionGameOver = 0>>
+				<<goto "secExpOptions">>
+			<</link>>
+		<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Determines wheter a total defeat in a rebellion will cause a gameover.//
 		<br>
 		<<if $forceRebellion == 0>>
 			Rebellions guaranteed this week is @@.red;FALSE@@.
@@ -201,21 +216,6 @@ __Rebellions__:
 			<</link>>
 		<</if>>
 		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Will force rebellions to happen every week. Rebellions will take precedence over battles.//
-		<br>
-		<<if $rebellionGameOver == 0>>
-			Rebellions can cause gameover is @@.red;FALSE@@.
-			<<link "Activate game loss in case of rebellions succeeding">>
-				<<set $rebellionGameOver = 1>>
-				<<goto "secExpOptions">>
-			<</link>> 
-		<<elseif $rebellionGameOver == 1>>
-			Rebellions can cause gameover is @@.cyan;TRUE@@.
-			<<link "Deactivate game loss in case of rebellions succeeding">>
-				<<set $rebellionGameOver = 0>>
-				<<goto "secExpOptions">>
-			<</link>>
-		<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;//Determines wheter a total defeat in a rebellion will cause a gameover.//
 	<</if>>
 
 <<if $showBattleStatistics == 0 &&($battlesEnabled == 1 || $rebellionsEnabled == 1)>>
@@ -304,6 +304,92 @@ __Battles/Rebellions Difficulty__:
 		@@.darkred;Very hard@@
 	<</replace>>
 <</link>>
+<br>
+<br>
+__Battles frequency__:
+<br>Battle frequency is set to:<span id="battleFrequency">
+<<if $battleFrequency == 0.5>>
+	@@.green;Very infrequent@@
+<<elseif $battleFrequency == 0.75>>
+	@@.limegreen;Infrequent@@
+<<elseif $battleFrequency == 1>>
+	@@.yellow;Normal@@
+<<elseif $battleFrequency == 1.25>>
+	@@.red;Frequent@@
+<<else>>
+	@@.darkred;Very frequent@@
+<</if>>
+</span>
+<br>
+<<link "Very infrequent">>
+	<<set $battleFrequency = 0.5>>
+	<<replace "#battleFrequency">>
+		@@.green;Very infrequent@@
+	<</replace>>
+<</link>> | <<link "Infrequent">>
+	<<set $battleFrequency = 0.75>>
+	<<replace "#battleFrequency">>
+		@@.limegreen;Infrequent@@
+	<</replace>>
+<</link>> | <<link "Normal">>
+	<<set $battleFrequency = 1>>
+	<<replace "#battleFrequency">>
+		@@.yellow;Normal@@
+	<</replace>>
+<</link>> | <<link "Frequent">>
+	<<set $battleFrequency = 1.25>>
+	<<replace "#battleFrequency">>
+		@@.red;Frequent@@
+	<</replace>>
+<</link>> | <<link "Very frequent">>
+	<<set $battleFrequency = 1.5>>
+	<<replace "#battleFrequency">>
+		@@.darkred;Very frequent@@
+	<</replace>>
+<</link>>
+<br>
+<br>
+__Rebellions buildup speed__:
+<br>Rebellion speed is set to:<span id="rebellionSpeed">
+<<if $rebellionSpeed == 0.5>>
+	@@.green;Very slow@@
+<<elseif $rebellionSpeed == 0.75>>
+	@@.limegreen;Slow@@
+<<elseif $rebellionSpeed == 1>>
+	@@.yellow;Normal@@
+<<elseif $rebellionSpeed == 1.25>>
+	@@.red;Fast@@
+<<else>>
+	@@.darkred;Very fast@@
+<</if>>
+</span>
+<br>
+<<link "Very slow">>
+	<<set $rebellionSpeed = 0.5>>
+	<<replace "#rebellionSpeed">>
+		@@.green;Very slow@@
+	<</replace>>
+<</link>> | <<link "Slow">>
+	<<set $rebellionSpeed = 0.75>>
+	<<replace "#rebellionSpeed">>
+		@@.limegreen;Slow@@
+	<</replace>>
+<</link>> | <<link "Normal">>
+	<<set $rebellionSpeed = 1>>
+	<<replace "#rebellionSpeed">>
+		@@.yellow;Normal@@
+	<</replace>>
+<</link>> | <<link "Fast">>
+	<<set $rebellionSpeed = 1.25>>
+	<<replace "#rebellionSpeed">>
+		@@.red;Fast@@
+	<</replace>>
+<</link>> | <<link "Very fast">>
+	<<set $rebellionSpeed = 1.5>>
+	<<replace "#rebellionSpeed">>
+		@@.darkred;Very fast@@
+	<</replace>>
+<</link>>
 
 
 <br>
diff --git a/src/SecExp/secInit.tw b/src/SecExp/secInit.tw
index 41db87c4a4208aa94bd0d6601bd768f2af781df1..489526b77d66d12ad6acc24d21e324f34acfb0b6 100644
--- a/src/SecExp/secInit.tw
+++ b/src/SecExp/secInit.tw
@@ -35,6 +35,8 @@
 <<set $forceRebellion = 0>>
 <<set $rebellionGameOver = 1>>
 <<set $allowPrestigeFromBattles = 1>>
+<<set $battleFrequency = 1>>
+<<set $rebellionSpeed = 1>>
 
 /* edicts */
 <<set $edictsUpkeep = 0>>
diff --git a/src/SecExp/widgets/battleWidgets.tw b/src/SecExp/widgets/battleWidgets.tw
index 73cad8d8bc1caf27718aee83e82875b795e09edc..26edaff84521764dddd5cfd17038e8fdbf96ab8e 100644
--- a/src/SecExp/widgets/battleWidgets.tw
+++ b/src/SecExp/widgets/battleWidgets.tw
@@ -119,4 +119,22 @@
 	<<else>>
 		<br>@@.red;Error: widget called outside battle@@	
 	<</if>>
+<</widget>>
+
+<<widget "calcBribe">>
+	<<if $week <= 30>>
+		<<set $bribeCost = 5000 + $baseBribePerAttacker * $attackTroops>>
+	<<elseif $week <= 30>>
+		<<set $bribeCost = 10000 + $baseBribePerAttacker * $attackTroops>>
+	<<elseif $week <= 30>>
+		<<set $bribeCost = 15000 + $baseBribePerAttacker * $attackTroops>>
+	<<elseif $week <= 30>>
+		<<set $bribeCost = 20000 + $baseBribePerAttacker * $attackTroops>>
+	<<elseif $week <= 30>>
+		<<set $bribeCost = 25000 + $baseBribePerAttacker * $attackTroops>>
+	<</if>>
+	<<if $majorBattle == 1>>
+		<<set $bribeCost *= 3>>
+	<</if>>
+	<<set $bribeCost = Math.trunc(Math.clamp($bribeCost,0,1000000))>>
 <</widget>>
\ No newline at end of file
diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw
index 5965d4a3d8d1c760e655e2533efdea31b61c6361..93d686186a9275d4126df0d6bfb2a66e58a01d65 100644
--- a/src/uncategorized/storyCaption.tw
+++ b/src/uncategorized/storyCaption.tw
@@ -443,7 +443,7 @@
 		<<if $riotCenter == 1>>
 		<br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@
 		<</if>>
-		<span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@
+		<br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@
 		<</if>>
 		
 		<<if $cyberMod != 0 && $researchLab.built == "true">>
@@ -480,7 +480,7 @@
 	<<if $riotCenter == 1>>
 	<br><span id="riotCenter"><<link "Manage Rebels">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "riotControlCenter">><</link>></span> @@.cyan;[Shift+R]@@
 	<</if>>
-	<span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@
+	<br><span id="edictButton"><<link [[Edicts|edicts]]>><</link>></span> @@.cyan;[D]@@
 	<</if>>
 	
 	<<if $cyberMod != 0 && $researchLab.built == "true">>