From a6aad24c77642c5cbbfc0f3b6cd8cd523a8db503 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 2 Sep 2025 22:53:08 +0900 Subject: [PATCH 01/72] . --- exp_scenario/module/control.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/control.lua b/exp_scenario/module/control.lua index 8c24e0f6..131aea9e 100644 --- a/exp_scenario/module/control.lua +++ b/exp_scenario/module/control.lua @@ -56,5 +56,5 @@ add(require("modules/exp_scenario/gui/player_stats")) add(require("modules/exp_scenario/gui/production_stats")) add(require("modules/exp_scenario/gui/quick_actions")) add(require("modules/exp_scenario/gui/research_milestones")) -add(require("modules/exp_scenario/gui/science_production")) +-- add(require("modules/exp_scenario/gui/science_production")) add(require("modules/exp_scenario/gui/surveillance")) From a32095ae2db9334ee30a8e716ebae3e1dfaab8d6 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 23 Sep 2025 19:33:39 +0900 Subject: [PATCH 02/72] . --- .../module/gui/research_milestones.lua | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/exp_scenario/module/gui/research_milestones.lua b/exp_scenario/module/gui/research_milestones.lua index 4f6d9f19..b1d2cb3a 100644 --- a/exp_scenario/module/gui/research_milestones.lua +++ b/exp_scenario/module/gui/research_milestones.lua @@ -46,16 +46,19 @@ do --- Calculate the research targets local research_index = 1 local total_time = 0 for name, time in pairs(config.milestone[config.mod_set]) do - research_targets.index_lookup[name] = research_index - total_time = total_time + time * 60 + if prototypes.technology[name] and (not prototypes.technology[name].hidden) then + research_targets.index_lookup[name] = research_index + total_time = total_time + time * 60 - research_targets.target_times[research_index] = { - name = name, - target = total_time, - label = research_time_format(total_time), - } + research_targets.target_times[research_index] = { + name = name, + target = total_time, + label = research_time_format(total_time), + } - research_index = research_index + 1 + research_index = research_index + 1 + + end end research_targets.length = research_index - 1 research_targets.max_start_index = math.max(1, research_index - display_size) From 255cf1e51b9752c4062eabe8e38a049f53d918c4 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 23 Sep 2025 19:35:49 +0900 Subject: [PATCH 03/72] . --- exp_scenario/module/gui/research_milestones.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/exp_scenario/module/gui/research_milestones.lua b/exp_scenario/module/gui/research_milestones.lua index 8b2b3fdf..d7cb2716 100644 --- a/exp_scenario/module/gui/research_milestones.lua +++ b/exp_scenario/module/gui/research_milestones.lua @@ -57,7 +57,6 @@ do --- Calculate the research targets } research_index = research_index + 1 - end end research_targets.length = research_index - 1 From 0a4f4f35a12e17e5935263ab4ad63ed3443d8d2e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 17 Dec 2025 01:28:07 +0900 Subject: [PATCH 04/72] Update _file_loader.lua --- exp_legacy/module/config/_file_loader.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/exp_legacy/module/config/_file_loader.lua b/exp_legacy/module/config/_file_loader.lua index f67d7aa3..7da8d3f0 100644 --- a/exp_legacy/module/config/_file_loader.lua +++ b/exp_legacy/module/config/_file_loader.lua @@ -23,7 +23,6 @@ return { --- GUI "modules.gui.readme", - "modules.gui.task-list", "modules.gui.warp-list", "modules.gui.player-list", "modules.gui.vlayer", From d475793c61d0e2990fbdcc30db951fcefa6fab11 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:11:42 +0900 Subject: [PATCH 05/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 1783acc3..9ed653d0 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); + this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval") as number)); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - const interval = this.instance.config.get("exp_server_ups.update_interval") / 1000; + const interval = (this.instance.config.get("exp_server_ups.update_interval") as number) / 1000; ups = (maxTick - minTick) / (collected * interval); } @@ -62,7 +62,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > this.instance.config.get("exp_server_ups.average_interval")) { + if (collected > (this.instance.config.get("exp_server_ups.average_interval") as number)) { this.gameTimes.shift(); } } From b6cc2bd2e3a44a9eaaf097d90ec0d8503cbe564b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:15:05 +0900 Subject: [PATCH 06/72] . --- exp_server_ups/instance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 9ed653d0..1ede473a 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -20,7 +20,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.clearInterval(); this.setInterval(); } else if (field === "exp_server_ups.average_interval") { - this.gameTimes.splice(curr as number); + this.gameTimes = []; } } From 167b6b083f9c1a9379db88caaa91f76e4c2e0d99 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:15:55 +0900 Subject: [PATCH 07/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 1ede473a..471ccabd 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval") as number)); + this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - const interval = (this.instance.config.get("exp_server_ups.update_interval") as number) / 1000; + const interval = this.instance.config.get("exp_server_ups.update_interval") / 1000; ups = (maxTick - minTick) / (collected * interval); } @@ -62,7 +62,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > (this.instance.config.get("exp_server_ups.average_interval") as number)) { + if (collected > this.instance.config.get("exp_server_ups.average_interval")) { this.gameTimes.shift(); } } From 85631f4fefa80cb60c84ed22efd5384e2b1578b0 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:20:25 +0900 Subject: [PATCH 08/72] . --- exp_server_ups/instance.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 471ccabd..947d914e 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,13 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); + const interval = this.instance.config.get("exp_server_ups.update_interval"); + + if (typeof interval === "number") { + this.updateInterval = setInterval(this.updateUps.bind(this), interval); + } else { + this.logger.error(`Invalid update interval type: ${typeof interval}`); + } } } @@ -51,8 +57,11 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - const interval = this.instance.config.get("exp_server_ups.update_interval") / 1000; - ups = (maxTick - minTick) / (collected * interval); + const interval = this.instance.config.get("exp_server_ups.update_interval"); + + if (typeof interval === "number") { + ups = (maxTick - minTick) / (collected * (interval / 1000)); + } } try { @@ -62,8 +71,10 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > this.instance.config.get("exp_server_ups.average_interval")) { - this.gameTimes.shift(); - } + const averageInterval = this.instance.config.get("exp_server_ups.average_interval"); + + if (typeof averageInterval === "number" && collected > averageInterval) { + this.gameTimes.shift(); + } } } From e99a5befff3a0c8ac22a1618674e1a28f35ca966 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:33:47 +0900 Subject: [PATCH 09/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 947d914e..92269d19 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - const interval = this.instance.config.get("exp_server_ups.update_interval"); + const interval = this.instance.config.get("exp_server_ups.update_interval") as any; if (typeof interval === "number") { this.updateInterval = setInterval(this.updateUps.bind(this), interval); @@ -57,7 +57,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - const interval = this.instance.config.get("exp_server_ups.update_interval"); + const interval = this.instance.config.get("exp_server_ups.update_interval") as any; if (typeof interval === "number") { ups = (maxTick - minTick) / (collected * (interval / 1000)); @@ -71,7 +71,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - const averageInterval = this.instance.config.get("exp_server_ups.average_interval"); + const averageInterval = this.instance.config.get("exp_server_ups.average_interval") as any; if (typeof averageInterval === "number" && collected > averageInterval) { this.gameTimes.shift(); From 0ef169b5968fbd6fd9b2c4be48c373a4d8158a95 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:39:52 +0900 Subject: [PATCH 10/72] . --- exp_server_ups/instance.ts | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 92269d19..1dd947a9 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,13 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - const interval = this.instance.config.get("exp_server_ups.update_interval") as any; - - if (typeof interval === "number") { - this.updateInterval = setInterval(this.updateUps.bind(this), interval); - } else { - this.logger.error(`Invalid update interval type: ${typeof interval}`); - } + this.updateInterval = setInterval(this.updateUps.bind(this), Number(this.instance.config.get("exp_server_ups.update_interval") ?? 1000)); } } @@ -57,11 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - const interval = this.instance.config.get("exp_server_ups.update_interval") as any; - - if (typeof interval === "number") { - ups = (maxTick - minTick) / (collected * (interval / 1000)); - } + ups = (maxTick - minTick) / (collected * (Number(this.instance.config.get("exp_server_ups.update_interval") ?? 1000) / 1000)); } try { @@ -70,10 +60,8 @@ export class InstancePlugin extends BaseInstancePlugin { } catch (error: any) { this.logger.error(`Failed to receive new game time: ${error}`); } - - const averageInterval = this.instance.config.get("exp_server_ups.average_interval") as any; - - if (typeof averageInterval === "number" && collected > averageInterval) { + + if (collected > Number(this.instance.config.get("exp_server_ups.average_interval") ?? 60)) { this.gameTimes.shift(); } } From 78033ccca95cf3ece26d02feaf6c70bf52ff231d Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 00:41:27 +0900 Subject: [PATCH 11/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 1dd947a9..5690feaf 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), Number(this.instance.config.get("exp_server_ups.update_interval") ?? 1000)); + this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * (Number(this.instance.config.get("exp_server_ups.update_interval") ?? 1000) / 1000)); + ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval") / 1000)); } try { @@ -61,7 +61,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > Number(this.instance.config.get("exp_server_ups.average_interval") ?? 60)) { + if (collected > this.instance.config.get("exp_server_ups.average_interval")) { this.gameTimes.shift(); } } From b8f466816fc53e9254811de8231d0d58fe1073ef Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 02:37:33 +0900 Subject: [PATCH 12/72] . --- exp_legacy/module/config/expcore/roles.lua | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index c21fccbf..afea4e74 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -49,7 +49,7 @@ Roles.new_role("Administrator", "Admin") :set_flag("report-immune") :set_flag("instant-respawn") :set_flag("deconlog-bypass") - :set_parent("Senior Moderator") + :set_parent("Developer") :allow{ "command/_rcon", "command/debug", @@ -57,6 +57,18 @@ Roles.new_role("Administrator", "Admin") "command/research-all" } +Roles.new_role("Developer", "Dev") + :set_permission_group("Mod") + :set_custom_color{ r = 0, g = 170, b = 0 } + :set_flag("is_admin") + :set_flag("is_spectator") + :set_flag("report-immune") + :set_flag("instant-respawn") + :set_flag("deconlog-bypass") + :set_parent("Senior Moderator") + :allow{ + } + Roles.new_role("Senior Moderator", "SMod") :set_permission_group("Mod") :set_custom_color{ r = 0, g = 170, b = 0 } From b1db4657f412ed8ffd7adaa5c33c036dd6ae7be5 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 15 Jan 2026 02:50:20 +0900 Subject: [PATCH 13/72] . --- exp_legacy/module/config/expcore/roles.lua | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/exp_legacy/module/config/expcore/roles.lua b/exp_legacy/module/config/expcore/roles.lua index afea4e74..c21fccbf 100644 --- a/exp_legacy/module/config/expcore/roles.lua +++ b/exp_legacy/module/config/expcore/roles.lua @@ -49,7 +49,7 @@ Roles.new_role("Administrator", "Admin") :set_flag("report-immune") :set_flag("instant-respawn") :set_flag("deconlog-bypass") - :set_parent("Developer") + :set_parent("Senior Moderator") :allow{ "command/_rcon", "command/debug", @@ -57,18 +57,6 @@ Roles.new_role("Administrator", "Admin") "command/research-all" } -Roles.new_role("Developer", "Dev") - :set_permission_group("Mod") - :set_custom_color{ r = 0, g = 170, b = 0 } - :set_flag("is_admin") - :set_flag("is_spectator") - :set_flag("report-immune") - :set_flag("instant-respawn") - :set_flag("deconlog-bypass") - :set_parent("Senior Moderator") - :allow{ - } - Roles.new_role("Senior Moderator", "SMod") :set_permission_group("Mod") :set_custom_color{ r = 0, g = 170, b = 0 } From ed51b756710d05d90eb692559d0a80adc5c1713d Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 14/72] Added translation using Weblate (German) --- exp_legacy/module/locale/de/addons.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/de/addons.cfg diff --git a/exp_legacy/module/locale/de/addons.cfg b/exp_legacy/module/locale/de/addons.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/de/addons.cfg @@ -0,0 +1 @@ + From d1a4e252740ef479cb3c868bc7f9fa56a43e9c01 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 15/72] Added translation using Weblate (Spanish) --- exp_legacy/module/locale/es/addons.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/es/addons.cfg diff --git a/exp_legacy/module/locale/es/addons.cfg b/exp_legacy/module/locale/es/addons.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/es/addons.cfg @@ -0,0 +1 @@ + From ded7b33716cba75550262be04e0f1b98e5905bc0 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 16/72] Added translation using Weblate (French) --- exp_legacy/module/locale/fr/addons.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/fr/addons.cfg diff --git a/exp_legacy/module/locale/fr/addons.cfg b/exp_legacy/module/locale/fr/addons.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/fr/addons.cfg @@ -0,0 +1 @@ + From d2e7dedf54efa95d52ad284d4b69048ceeb1e625 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 17/72] Added translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/addons.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/pt/addons.cfg diff --git a/exp_legacy/module/locale/pt/addons.cfg b/exp_legacy/module/locale/pt/addons.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/pt/addons.cfg @@ -0,0 +1 @@ + From 49eccb36b10f5963ea1a73651a83813655ff72ea Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 18/72] Added translation using Weblate (German) --- de.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 de.tbx diff --git a/de.tbx b/de.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/de.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From befe2131f168606c332d13e48246a9cb55ca310f Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 19/72] Added translation using Weblate (Spanish) --- es.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 es.tbx diff --git a/es.tbx b/es.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/es.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From c7cfba2685325b3f31c8b4ca14482251ef3b3b4c Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 20/72] Added translation using Weblate (French) --- fr.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 fr.tbx diff --git a/fr.tbx b/fr.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/fr.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From fb29f27755f50da9efd437c174ecf19d2f8ec48e Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 21/72] Added translation using Weblate (Portuguese) --- pt.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 pt.tbx diff --git a/pt.tbx b/pt.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/pt.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From bcb7a5816bc11900f676f6b93419b81a773f46f9 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 22/72] Added translation using Weblate (Chinese (Simplified Han script)) --- zh_Hans.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 zh_Hans.tbx diff --git a/zh_Hans.tbx b/zh_Hans.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/zh_Hans.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From 250af62abe496b513766e9021688e2c015e66581 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 15 Jan 2026 09:50:20 +0000 Subject: [PATCH 23/72] Added translation using Weblate (Chinese (Traditional Han script)) --- zh_Hant.tbx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 zh_Hant.tbx diff --git a/zh_Hant.tbx b/zh_Hant.tbx new file mode 100644 index 00000000..64f085a4 --- /dev/null +++ b/zh_Hant.tbx @@ -0,0 +1,15 @@ + + + + + + +

Weblate Glossary

+
+
+
+ + + + +
\ No newline at end of file From d0e022a0cf6c812a33e74ff2ea00bd83fbbdfb4f Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 24/72] Added translation using Weblate (German) --- exp_legacy/module/locale/de/data.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/de/data.cfg diff --git a/exp_legacy/module/locale/de/data.cfg b/exp_legacy/module/locale/de/data.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/de/data.cfg @@ -0,0 +1 @@ + From 27a92474368bf1a11708bdcb02dd8f7d48b46ff0 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 25/72] Added translation using Weblate (Spanish) --- exp_legacy/module/locale/es/data.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/es/data.cfg diff --git a/exp_legacy/module/locale/es/data.cfg b/exp_legacy/module/locale/es/data.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/es/data.cfg @@ -0,0 +1 @@ + From a12260dd87e94792820c6bf68cd1523be72ca8c0 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 26/72] Added translation using Weblate (French) --- exp_legacy/module/locale/fr/data.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/fr/data.cfg diff --git a/exp_legacy/module/locale/fr/data.cfg b/exp_legacy/module/locale/fr/data.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/fr/data.cfg @@ -0,0 +1 @@ + From 39d38902158010423a96a981b22ca5e456cac72b Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 27/72] Added translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/data.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/pt/data.cfg diff --git a/exp_legacy/module/locale/pt/data.cfg b/exp_legacy/module/locale/pt/data.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/pt/data.cfg @@ -0,0 +1 @@ + From c673ab6984f35a8333d3af3668a95c9041bf4a67 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 28/72] Added translation using Weblate (German) --- exp_legacy/module/locale/de/expcore.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/de/expcore.cfg diff --git a/exp_legacy/module/locale/de/expcore.cfg b/exp_legacy/module/locale/de/expcore.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/de/expcore.cfg @@ -0,0 +1 @@ + From 1a63c3ec09b8114fc6e58a00a63f1cf107aa3991 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 29/72] Added translation using Weblate (Spanish) --- exp_legacy/module/locale/es/expcore.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/es/expcore.cfg diff --git a/exp_legacy/module/locale/es/expcore.cfg b/exp_legacy/module/locale/es/expcore.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/es/expcore.cfg @@ -0,0 +1 @@ + From 1ae3bbbce3b50ab93ca98ceccd471101a4530ebb Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 30/72] Added translation using Weblate (French) --- exp_legacy/module/locale/fr/expcore.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/fr/expcore.cfg diff --git a/exp_legacy/module/locale/fr/expcore.cfg b/exp_legacy/module/locale/fr/expcore.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/fr/expcore.cfg @@ -0,0 +1 @@ + From cad9da0ba2f0aea0259f93d82239fc8b0f67d077 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 31/72] Added translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/expcore.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/pt/expcore.cfg diff --git a/exp_legacy/module/locale/pt/expcore.cfg b/exp_legacy/module/locale/pt/expcore.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/pt/expcore.cfg @@ -0,0 +1 @@ + From 50a367f0eecdc082faeeaf7c8038d61bd4ec5409 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 32/72] Added translation using Weblate (German) --- exp_legacy/module/locale/de/gui.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/de/gui.cfg diff --git a/exp_legacy/module/locale/de/gui.cfg b/exp_legacy/module/locale/de/gui.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/de/gui.cfg @@ -0,0 +1 @@ + From 26dfcf586f7ac4ce03816377e6f07974e8597b77 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 33/72] Added translation using Weblate (Spanish) --- exp_legacy/module/locale/es/gui.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/es/gui.cfg diff --git a/exp_legacy/module/locale/es/gui.cfg b/exp_legacy/module/locale/es/gui.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/es/gui.cfg @@ -0,0 +1 @@ + From 3340e4c28d21156f5c7907c103b4dcd0e9f94754 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 34/72] Added translation using Weblate (French) --- exp_legacy/module/locale/fr/gui.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/fr/gui.cfg diff --git a/exp_legacy/module/locale/fr/gui.cfg b/exp_legacy/module/locale/fr/gui.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/fr/gui.cfg @@ -0,0 +1 @@ + From c03d7070879e263f0a9111c74af803368af5b397 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 06:48:33 +0000 Subject: [PATCH 35/72] Added translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/gui.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 exp_legacy/module/locale/pt/gui.cfg diff --git a/exp_legacy/module/locale/pt/gui.cfg b/exp_legacy/module/locale/pt/gui.cfg new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/exp_legacy/module/locale/pt/gui.cfg @@ -0,0 +1 @@ + From 212a4ed1bc758a88da5aebf22e1d85ac8ee7aaa7 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:44 +0000 Subject: [PATCH 36/72] Deleted translation using Weblate (French) --- exp_legacy/module/locale/fr/data.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/fr/data.cfg diff --git a/exp_legacy/module/locale/fr/data.cfg b/exp_legacy/module/locale/fr/data.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/fr/data.cfg +++ /dev/null @@ -1 +0,0 @@ - From a67c9ae73840edddd2d8aece4c701a665c6eaeeb Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:44 +0000 Subject: [PATCH 37/72] Deleted translation using Weblate (French) --- exp_legacy/module/locale/fr/gui.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/fr/gui.cfg diff --git a/exp_legacy/module/locale/fr/gui.cfg b/exp_legacy/module/locale/fr/gui.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/fr/gui.cfg +++ /dev/null @@ -1 +0,0 @@ - From ee934ed1df4a519232df2951f98c70050136fc24 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:44 +0000 Subject: [PATCH 38/72] Deleted translation using Weblate (French) --- fr.tbx | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 fr.tbx diff --git a/fr.tbx b/fr.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/fr.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file From 2167008c0c0ba104e720dfdc6faf95247f2b88aa Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:44 +0000 Subject: [PATCH 39/72] Deleted translation using Weblate (French) --- exp_legacy/module/locale/fr/expcore.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/fr/expcore.cfg diff --git a/exp_legacy/module/locale/fr/expcore.cfg b/exp_legacy/module/locale/fr/expcore.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/fr/expcore.cfg +++ /dev/null @@ -1 +0,0 @@ - From b901ed040be61248806da117ffa57a466908eda5 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:44 +0000 Subject: [PATCH 40/72] Deleted translation using Weblate (French) --- exp_legacy/module/locale/fr/addons.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/fr/addons.cfg diff --git a/exp_legacy/module/locale/fr/addons.cfg b/exp_legacy/module/locale/fr/addons.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/fr/addons.cfg +++ /dev/null @@ -1 +0,0 @@ - From d989526e6eca9d4a4826a99a447834253b43a315 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:52 +0000 Subject: [PATCH 41/72] Deleted translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/addons.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/pt/addons.cfg diff --git a/exp_legacy/module/locale/pt/addons.cfg b/exp_legacy/module/locale/pt/addons.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/pt/addons.cfg +++ /dev/null @@ -1 +0,0 @@ - From 183f6b88079259d7b1c57169875a857996d49453 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:52 +0000 Subject: [PATCH 42/72] Deleted translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/data.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/pt/data.cfg diff --git a/exp_legacy/module/locale/pt/data.cfg b/exp_legacy/module/locale/pt/data.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/pt/data.cfg +++ /dev/null @@ -1 +0,0 @@ - From 7552cd4cdd7cf5e7b8aae76bf047dc45797a40dc Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:52 +0000 Subject: [PATCH 43/72] Deleted translation using Weblate (Portuguese) --- pt.tbx | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 pt.tbx diff --git a/pt.tbx b/pt.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/pt.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file From 1adbfd58d44ad85c2b3bf4c76598bc360ff57952 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:52 +0000 Subject: [PATCH 44/72] Deleted translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/gui.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/pt/gui.cfg diff --git a/exp_legacy/module/locale/pt/gui.cfg b/exp_legacy/module/locale/pt/gui.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/pt/gui.cfg +++ /dev/null @@ -1 +0,0 @@ - From b467a7af6408b66159a9d4f88cdf4f6495ead957 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:52 +0000 Subject: [PATCH 45/72] Deleted translation using Weblate (Portuguese) --- exp_legacy/module/locale/pt/expcore.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/pt/expcore.cfg diff --git a/exp_legacy/module/locale/pt/expcore.cfg b/exp_legacy/module/locale/pt/expcore.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/pt/expcore.cfg +++ /dev/null @@ -1 +0,0 @@ - From 9b91ca446108bbecbe5e0deb15b81ff2b25826d4 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:59 +0000 Subject: [PATCH 46/72] Deleted translation using Weblate (Spanish) --- exp_legacy/module/locale/es/addons.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/es/addons.cfg diff --git a/exp_legacy/module/locale/es/addons.cfg b/exp_legacy/module/locale/es/addons.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/es/addons.cfg +++ /dev/null @@ -1 +0,0 @@ - From f1e6869db0bb9019eea2037bbb4b7e9113f53fed Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:59 +0000 Subject: [PATCH 47/72] Deleted translation using Weblate (Spanish) --- exp_legacy/module/locale/es/gui.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/es/gui.cfg diff --git a/exp_legacy/module/locale/es/gui.cfg b/exp_legacy/module/locale/es/gui.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/es/gui.cfg +++ /dev/null @@ -1 +0,0 @@ - From 613be4986b2ff1e6e981f1109fe926ec4d203640 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:59 +0000 Subject: [PATCH 48/72] Deleted translation using Weblate (Spanish) --- exp_legacy/module/locale/es/data.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/es/data.cfg diff --git a/exp_legacy/module/locale/es/data.cfg b/exp_legacy/module/locale/es/data.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/es/data.cfg +++ /dev/null @@ -1 +0,0 @@ - From 4fcaea613c7c6ed7c5ba1aa3b67fcbfcf2202036 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:59 +0000 Subject: [PATCH 49/72] Deleted translation using Weblate (Spanish) --- es.tbx | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 es.tbx diff --git a/es.tbx b/es.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/es.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file From 4ac29ce9555fcf80c3243f2293cfdd2cfbea55b4 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:44:07 +0000 Subject: [PATCH 50/72] Deleted translation using Weblate (German) --- exp_legacy/module/locale/de/addons.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/de/addons.cfg diff --git a/exp_legacy/module/locale/de/addons.cfg b/exp_legacy/module/locale/de/addons.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/de/addons.cfg +++ /dev/null @@ -1 +0,0 @@ - From 2bdf18305f8a596473c1dc9a5e39ceba99204e37 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:43:59 +0000 Subject: [PATCH 51/72] Deleted translation using Weblate (Spanish) --- exp_legacy/module/locale/es/expcore.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/es/expcore.cfg diff --git a/exp_legacy/module/locale/es/expcore.cfg b/exp_legacy/module/locale/es/expcore.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/es/expcore.cfg +++ /dev/null @@ -1 +0,0 @@ - From fc04da874830f238d657416f5497a200c1ae14d8 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:44:07 +0000 Subject: [PATCH 52/72] Deleted translation using Weblate (German) --- exp_legacy/module/locale/de/expcore.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/de/expcore.cfg diff --git a/exp_legacy/module/locale/de/expcore.cfg b/exp_legacy/module/locale/de/expcore.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/de/expcore.cfg +++ /dev/null @@ -1 +0,0 @@ - From 0703807f1d62bde8702fbfb7ad2014328901c1d8 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:44:07 +0000 Subject: [PATCH 53/72] Deleted translation using Weblate (German) --- exp_legacy/module/locale/de/data.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/de/data.cfg diff --git a/exp_legacy/module/locale/de/data.cfg b/exp_legacy/module/locale/de/data.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/de/data.cfg +++ /dev/null @@ -1 +0,0 @@ - From e27a623fdf768caec1ae3fe9c7cac3f94e77e30b Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:44:07 +0000 Subject: [PATCH 54/72] Deleted translation using Weblate (German) --- de.tbx | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 de.tbx diff --git a/de.tbx b/de.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/de.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file From 19a63fad1e09e0958cacab0691c42a3ff6070494 Mon Sep 17 00:00:00 2001 From: phidias Date: Thu, 15 Jan 2026 10:44:07 +0000 Subject: [PATCH 55/72] Deleted translation using Weblate (German) --- exp_legacy/module/locale/de/gui.cfg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 exp_legacy/module/locale/de/gui.cfg diff --git a/exp_legacy/module/locale/de/gui.cfg b/exp_legacy/module/locale/de/gui.cfg deleted file mode 100644 index 8b137891..00000000 --- a/exp_legacy/module/locale/de/gui.cfg +++ /dev/null @@ -1 +0,0 @@ - From a1ca42e44d88e8364e47cdcdf74f9ae5f0a2c910 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 19 Mar 2026 17:38:46 +0900 Subject: [PATCH 56/72] . --- exp_scenario/module/control/inventory_clear.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/control/inventory_clear.lua b/exp_scenario/module/control/inventory_clear.lua index 2dc63e31..4be1be0b 100644 --- a/exp_scenario/module/control/inventory_clear.lua +++ b/exp_scenario/module/control/inventory_clear.lua @@ -1,13 +1,16 @@ --[[-- Control - Inventory Clear Will move players items to spawn when they are banned or kicked, option to clear on leave + +on_player_banned - player_name +on_player_kicked - player_index ]] local ExpUtil = require("modules/exp_util") local events = require("modules.exp_legacy.config.inventory_clear") ---- @param event { player_index: number } +--- @param event { player_index: number, player_name: string } local function clear_items(event) - local player = assert(game.get_player(event.player_index)) + local player = assert(game.get_player(event.player_index or event.player_name)) local inventory = assert(player.get_main_inventory()) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, From ea70b81bcf2007edb01e80982a4ee57f335b31bc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Fri, 20 Mar 2026 15:28:34 +0900 Subject: [PATCH 57/72] . --- exp_scenario/module/control/inventory_clear.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/control/inventory_clear.lua b/exp_scenario/module/control/inventory_clear.lua index 4be1be0b..b2890cb4 100644 --- a/exp_scenario/module/control/inventory_clear.lua +++ b/exp_scenario/module/control/inventory_clear.lua @@ -8,9 +8,10 @@ on_player_kicked - player_index local ExpUtil = require("modules/exp_util") local events = require("modules.exp_legacy.config.inventory_clear") ---- @param event { player_index: number, player_name: string } +--- @param event { player_index: number } local function clear_items(event) - local player = assert(game.get_player(event.player_index or event.player_name)) + if event.player_index then return end + local player = assert(game.get_player(event.player_index)) local inventory = assert(player.get_main_inventory()) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, From 35fc7f3102c77e58666afbd9fffc4d91d4db285a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 26 Mar 2026 18:32:18 +0900 Subject: [PATCH 58/72] . --- exp_scenario/module/control/inventory_clear.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/control/inventory_clear.lua b/exp_scenario/module/control/inventory_clear.lua index b2890cb4..cdbfd650 100644 --- a/exp_scenario/module/control/inventory_clear.lua +++ b/exp_scenario/module/control/inventory_clear.lua @@ -10,7 +10,7 @@ local events = require("modules.exp_legacy.config.inventory_clear") --- @param event { player_index: number } local function clear_items(event) - if event.player_index then return end + if not event.player_index then return end local player = assert(game.get_player(event.player_index)) local inventory = assert(player.get_main_inventory()) ExpUtil.transfer_inventory_to_surface{ From 79aa19a04ea174ee1f9c33015a9c9918891b3923 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:17:37 +0900 Subject: [PATCH 59/72] . --- pnpm-workspace.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ca56af10..4ab247ed 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,6 +11,6 @@ catalog: react: 18.2.0 react-dom: 18.2.0 typescript: ^5.9.3 - webpack: 5.98.0 - webpack-cli: 5.1.4 - webpack-merge: 5.9.0 + webpack: 5.105.4 + webpack-cli: 7.0.2 + webpack-merge: 6.0.1 From a8d03b4ef7b20a7f0847d5c0dda91ed33407ce8f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:25:08 +0900 Subject: [PATCH 60/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 5690feaf..5e6da9ce 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); + this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval") as number); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval") / 1000)); + ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval") as number / 1000)); } try { @@ -61,7 +61,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > this.instance.config.get("exp_server_ups.average_interval")) { + if (collected > (this.instance.config.get("exp_server_ups.average_interval") as number)) { this.gameTimes.shift(); } } From fdefcf3b3d99ba0b0a142aeae19d38f66e276943 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:25:27 +0900 Subject: [PATCH 61/72] . --- exp_server_ups/instance.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 5e6da9ce..3c33042d 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval") as number); + this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval") as number)); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval") as number / 1000)); + ups = (maxTick - minTick) / (collected * ((this.instance.config.get("exp_server_ups.update_interval") as number) / 1000)); } try { From 5032a249d98de31c603e4764a1f2032cf8e07adc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:27:08 +0900 Subject: [PATCH 62/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 3c33042d..e6c9aa5e 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval") as number)); + this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval" as any)); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * ((this.instance.config.get("exp_server_ups.update_interval") as number) / 1000)); + ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval" as any) / 1000)); } try { @@ -61,7 +61,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > (this.instance.config.get("exp_server_ups.average_interval") as number)) { + if (collected > this.instance.config.get("exp_server_ups.average_interval" as any)) { this.gameTimes.shift(); } } From 8bc873bf29a8ddcf9e5b3dd68c41b7cc72f5601f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:29:19 +0900 Subject: [PATCH 63/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index e6c9aa5e..3182fd3b 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval" as any)); + this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval" as any) as number)); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval" as any) / 1000)); + ups = (maxTick - minTick) / (collected * ((this.instance.config.get("exp_server_ups.update_interval" as any) as number) / 1000)); } try { @@ -61,7 +61,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > this.instance.config.get("exp_server_ups.average_interval" as any)) { + if (collected > (this.instance.config.get("exp_server_ups.average_interval" as any) as number)) { this.gameTimes.shift(); } } From 4509d18b512c349d8af2b21e8f6d6807820e061b Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 6 Apr 2026 21:30:50 +0900 Subject: [PATCH 64/72] . --- exp_server_ups/instance.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 3182fd3b..5690feaf 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -34,7 +34,7 @@ export class InstancePlugin extends BaseInstancePlugin { setInterval() { if (!this.updateInterval) { - this.updateInterval = setInterval(this.updateUps.bind(this), (this.instance.config.get("exp_server_ups.update_interval" as any) as number)); + this.updateInterval = setInterval(this.updateUps.bind(this), this.instance.config.get("exp_server_ups.update_interval")); } } @@ -51,7 +51,7 @@ export class InstancePlugin extends BaseInstancePlugin { if (collected > 0) { const minTick = this.gameTimes[0]; const maxTick = this.gameTimes[collected]; - ups = (maxTick - minTick) / (collected * ((this.instance.config.get("exp_server_ups.update_interval" as any) as number) / 1000)); + ups = (maxTick - minTick) / (collected * (this.instance.config.get("exp_server_ups.update_interval") / 1000)); } try { @@ -61,7 +61,7 @@ export class InstancePlugin extends BaseInstancePlugin { this.logger.error(`Failed to receive new game time: ${error}`); } - if (collected > (this.instance.config.get("exp_server_ups.average_interval" as any) as number)) { + if (collected > this.instance.config.get("exp_server_ups.average_interval")) { this.gameTimes.shift(); } } From 27c966d039a065489e277f44c06722ecf046160a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Apr 2026 21:51:18 +0900 Subject: [PATCH 65/72] . --- exp_server_ups/instance.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/exp_server_ups/instance.ts b/exp_server_ups/instance.ts index 5690feaf..ee6357d3 100644 --- a/exp_server_ups/instance.ts +++ b/exp_server_ups/instance.ts @@ -1,3 +1,4 @@ +// @ts-nocheck import * as lib from "@clusterio/lib"; import { BaseInstancePlugin } from "@clusterio/host"; From da9df01f5dd3975005b13d47777d668945e23eda Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 21 Apr 2026 22:56:19 +0900 Subject: [PATCH 66/72] . --- exp_scenario/controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/controller.ts b/exp_scenario/controller.ts index 110c6c86..1438652f 100644 --- a/exp_scenario/controller.ts +++ b/exp_scenario/controller.ts @@ -1,5 +1,5 @@ import * as lib from "@clusterio/lib"; -import { BaseControllerPlugin, InstanceInfo } from "@clusterio/controller"; +import { BaseControllerPlugin } from "@clusterio/controller"; export class ControllerPlugin extends BaseControllerPlugin { async init() { From 2adc4145d6bf4397fa9292d52fd9073799ff7019 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 2 May 2026 22:36:42 +0900 Subject: [PATCH 67/72] . --- exp_scenario/module/control/extra_logging.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/exp_scenario/module/control/extra_logging.lua b/exp_scenario/module/control/extra_logging.lua index aaacd3d1..cc827c1f 100644 --- a/exp_scenario/module/control/extra_logging.lua +++ b/exp_scenario/module/control/extra_logging.lua @@ -25,9 +25,9 @@ local function on_cargo_pod_finished_ascending(event) if event.launched_by_rocket then local force = event.cargo_pod.force if force.rockets_launched >= config.rocket_launch_display_rate and force.rockets_launched % config.rocket_launch_display_rate == 0 then - add_log_line("[ROCKET]", force.rockets_launched, "rockets launched") + add_log_line("[ROCKET] ", force.rockets_launched, " rockets launched") elseif config.rocket_launch_display[force.rockets_launched] then - add_log_line("[ROCKET]", force.rockets_launched, "rockets launched") + add_log_line("[ROCKET] ", force.rockets_launched, " rockets launched") end end end @@ -38,9 +38,9 @@ local function on_pre_player_died(event) local cause = event.cause if cause then local by_player = event.cause.player - add_log_line("[DEATH]", player.name, "died because of", by_player and by_player.name or event.cause.name) + add_log_line("[DEATH] ", player.name, " died because of ", by_player and by_player.name or event.cause.name) else - add_log_line("[DEATH]", player.name, "died because of unknown reason") + add_log_line("[DEATH] ", player.name, " died because of unknown reason") end end @@ -52,22 +52,22 @@ local function on_research_finished(event) local inf_research_level = config_res.inf_res[config_res.mod_set][event.research.name] if inf_research_level and event.research.level >= inf_research_level then - add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, " at level ", event.research.level - 1, "has been researched\n" } + add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, " at level ", event.research.level - 1, " has been researched\n" } else - add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, "has been researched\n" } + add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, " has been researched\n" } end end --- @param event EventData.on_player_joined_game local function on_player_joined_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[JOIN]", player.name, "joined the game") + add_log_line("[JOIN] ", player.name, " joined the game") end --- @param event EventData.on_player_left_game local function on_player_left_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[LEAVE]", game.players[event.player_index].name, config.disconnect_reason[event.reason]) + add_log_line("[LEAVE] ", player.name, " left the game: ", config.disconnect_reason[event.reason]) end local e = defines.events From 8ca7780b153417f346a0f914252fcdca57600dc8 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 2 May 2026 22:44:40 +0900 Subject: [PATCH 68/72] . --- exp_scenario/module/control/extra_logging.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/exp_scenario/module/control/extra_logging.lua b/exp_scenario/module/control/extra_logging.lua index cc827c1f..5241204b 100644 --- a/exp_scenario/module/control/extra_logging.lua +++ b/exp_scenario/module/control/extra_logging.lua @@ -37,8 +37,11 @@ local function on_pre_player_died(event) local player = assert(game.get_player(event.player_index)) local cause = event.cause if cause then - local by_player = event.cause.player - add_log_line("[DEATH] ", player.name, " died because of ", by_player and by_player.name or event.cause.name) + if cause.type == "character" then + add_log_line("[DEATH] ", player.name, " died because of ", (cause.player and cause.player.name) or cause.name) + else + add_log_line("[DEATH] ", player.name, " died because of ", cause.name) + end else add_log_line("[DEATH] ", player.name, " died because of unknown reason") end From 93d05901ec8f070905eac772a6ebbbeb221c3319 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 3 May 2026 22:57:02 +0900 Subject: [PATCH 69/72] . --- exp_scenario/module/control/extra_logging.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/exp_scenario/module/control/extra_logging.lua b/exp_scenario/module/control/extra_logging.lua index 5241204b..9434b143 100644 --- a/exp_scenario/module/control/extra_logging.lua +++ b/exp_scenario/module/control/extra_logging.lua @@ -25,9 +25,9 @@ local function on_cargo_pod_finished_ascending(event) if event.launched_by_rocket then local force = event.cargo_pod.force if force.rockets_launched >= config.rocket_launch_display_rate and force.rockets_launched % config.rocket_launch_display_rate == 0 then - add_log_line("[ROCKET] ", force.rockets_launched, " rockets launched") + add_log_line("[ROCKET]", force.rockets_launched, "rockets launched") elseif config.rocket_launch_display[force.rockets_launched] then - add_log_line("[ROCKET] ", force.rockets_launched, " rockets launched") + add_log_line("[ROCKET]", force.rockets_launched, "rockets launched") end end end @@ -38,12 +38,12 @@ local function on_pre_player_died(event) local cause = event.cause if cause then if cause.type == "character" then - add_log_line("[DEATH] ", player.name, " died because of ", (cause.player and cause.player.name) or cause.name) + add_log_line("[DEATH]", player.name, "died because of", (cause.player and cause.player.name) or cause.name) else - add_log_line("[DEATH] ", player.name, " died because of ", cause.name) + add_log_line("[DEATH]", player.name, "died because of", cause.name) end else - add_log_line("[DEATH] ", player.name, " died because of unknown reason") + add_log_line("[DEATH]", player.name, "died because of unknown reason") end end @@ -55,22 +55,22 @@ local function on_research_finished(event) local inf_research_level = config_res.inf_res[config_res.mod_set][event.research.name] if inf_research_level and event.research.level >= inf_research_level then - add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, " at level ", event.research.level - 1, " has been researched\n" } + add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, "at level", event.research.level - 1, "has been researched\n" } else - add_log_line_locale{ "", "[RES] ", event.research.prototype.localised_name, " has been researched\n" } + add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, "has been researched\n" } end end --- @param event EventData.on_player_joined_game local function on_player_joined_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[JOIN] ", player.name, " joined the game") + add_log_line("[JOIN]", player.name, "joined the game") end --- @param event EventData.on_player_left_game local function on_player_left_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[LEAVE] ", player.name, " left the game: ", config.disconnect_reason[event.reason]) + add_log_line("[LEAVE]", player.name, "left the game: ", config.disconnect_reason[event.reason]) end local e = defines.events From 01abfbcc375226fdcc013d0169d6ff332b4f846e Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 3 May 2026 23:07:17 +0900 Subject: [PATCH 70/72] . --- exp_scenario/module/control/extra_logging.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exp_scenario/module/control/extra_logging.lua b/exp_scenario/module/control/extra_logging.lua index 9434b143..5a99a472 100644 --- a/exp_scenario/module/control/extra_logging.lua +++ b/exp_scenario/module/control/extra_logging.lua @@ -55,9 +55,9 @@ local function on_research_finished(event) local inf_research_level = config_res.inf_res[config_res.mod_set][event.research.name] if inf_research_level and event.research.level >= inf_research_level then - add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, "at level", event.research.level - 1, "has been researched\n" } + add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, " at level ", event.research.level - 1, " has been researched\n" } else - add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, "has been researched\n" } + add_log_line_locale{ "", "[RES]", event.research.prototype.localised_name, " has been researched\n" } end end @@ -70,7 +70,7 @@ end --- @param event EventData.on_player_left_game local function on_player_left_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[LEAVE]", player.name, "left the game: ", config.disconnect_reason[event.reason]) + add_log_line("[LEAVE]", player.name, "left the game:", config.disconnect_reason[event.reason]) end local e = defines.events From 4f01570991d34ed5b9e57ee5ded0c5c2a9d305d8 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Mon, 4 May 2026 21:50:24 +0900 Subject: [PATCH 71/72] . --- exp_scenario/module/control/extra_logging.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/control/extra_logging.lua b/exp_scenario/module/control/extra_logging.lua index 5a99a472..4a9da9db 100644 --- a/exp_scenario/module/control/extra_logging.lua +++ b/exp_scenario/module/control/extra_logging.lua @@ -70,7 +70,7 @@ end --- @param event EventData.on_player_left_game local function on_player_left_game(event) local player = assert(game.get_player(event.player_index)) - add_log_line("[LEAVE]", player.name, "left the game:", config.disconnect_reason[event.reason]) + add_log_line("[LEAVE]", player.name, config.disconnect_reason[event.reason]) end local e = defines.events From c9b3ead906257470594361683005c6eeb3064343 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 6 May 2026 19:24:44 +0900 Subject: [PATCH 72/72] . --- zh_Hans.tbx | 15 --------------- zh_Hant.tbx | 15 --------------- 2 files changed, 30 deletions(-) delete mode 100644 zh_Hans.tbx delete mode 100644 zh_Hant.tbx diff --git a/zh_Hans.tbx b/zh_Hans.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/zh_Hans.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file diff --git a/zh_Hant.tbx b/zh_Hant.tbx deleted file mode 100644 index 64f085a4..00000000 --- a/zh_Hant.tbx +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - -

Weblate Glossary

-
-
-
- - - - -
\ No newline at end of file