diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss
index e5d8bbef..8b97677a 100644
--- a/src/css/states/main_menu.scss
+++ b/src/css/states/main_menu.scss
@@ -207,6 +207,10 @@
@include S(margin-top, 15px);
}
+ .modsButton {
+ @include S(margin-top, 15px);
+ }
+
.savegames {
@include S(max-height, 105px);
overflow-y: auto;
diff --git a/src/js/core/query_parameters.js b/src/js/core/query_parameters.js
index b3dab1b3..1aef7781 100644
--- a/src/js/core/query_parameters.js
+++ b/src/js/core/query_parameters.js
@@ -3,6 +3,7 @@ const options = queryString.parse(location.search);
export let queryParamOptions = {
embedProvider: null,
+ modDeveloper: true,
};
if (options.embed) {
diff --git a/src/js/game/hud/parts/settings_menu.js b/src/js/game/hud/parts/settings_menu.js
index c70d6afc..fab91816 100644
--- a/src/js/game/hud/parts/settings_menu.js
+++ b/src/js/game/hud/parts/settings_menu.js
@@ -38,6 +38,10 @@ export class HUDSettingsMenu extends BaseHUDPart {
title: T.ingame.settingsMenu.buttons.settings,
action: () => this.goToSettings(),
},
+ {
+ title: T.ingame.settingsMenu.buttons.mods,
+ action: () => this.goToMods(),
+ },
{
title: T.ingame.settingsMenu.buttons.menu,
action: () => this.returnToMenu(),
@@ -73,6 +77,10 @@ export class HUDSettingsMenu extends BaseHUDPart {
this.root.gameState.goToSettings();
}
+ goToMods() {
+ this.root.gameState.goToMods();
+ }
+
shouldPauseGame() {
return this.visible;
}
diff --git a/src/js/states/ingame.js b/src/js/states/ingame.js
index a5901a3d..7761c5c0 100644
--- a/src/js/states/ingame.js
+++ b/src/js/states/ingame.js
@@ -154,6 +154,13 @@ export class InGameState extends GameState {
});
}
+ /**
+ * Goes back to the mods state
+ */
+ goToMods() {
+ this.saveThenGoToState("ModsState");
+ }
+
/**
* Goes back to the settings state
*/
diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js
index 28b0d45c..70f6ea60 100644
--- a/src/js/states/main_menu.js
+++ b/src/js/states/main_menu.js
@@ -74,6 +74,7 @@ export class MainMenuState extends GameState {
}
+
@@ -196,6 +197,7 @@ export class MainMenuState extends GameState {
const qs = this.htmlElement.querySelector.bind(this.htmlElement);
this.trackClicks(qs(".mainContainer .playButton"), this.onPlayButtonClicked);
this.trackClicks(qs(".mainContainer .importButton"), this.requestImportSavegame);
+ this.trackClicks(qs(".mainContainer .modsButton"), this.onModsButtonClicked);
if (G_IS_DEV && globalConfig.debug.fastGameEnter) {
const games = this.app.savegameMgr.getSavegamesMetaData();
@@ -375,6 +377,10 @@ export class MainMenuState extends GameState {
this.moveToState("SettingsState");
}
+ onModsButtonClicked() {
+ this.moveToState("ModsState");
+ }
+
doStartNewGame() {
this.app.analytics.trackUiClick("startgame");
diff --git a/translations/base-en.yaml b/translations/base-en.yaml
index ad84afcc..7361d7de 100644
--- a/translations/base-en.yaml
+++ b/translations/base-en.yaml
@@ -114,6 +114,7 @@ mainMenu:
play: Play
changelog: Changelog
importSavegame: Import
+ mods: Mods
openSourceHint: This game is open source!
discordLink: Official Discord Server
@@ -337,6 +338,7 @@ ingame:
buttons:
continue: Continue
settings: Settings
+ mods: Mods
menu: Return to menu
# Bottom left tutorial hints