Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ac12ed0
Add cross-platform notification audio cues
Guffawaffle Aug 29, 2026
05daae5
Warn when audio alerts lack toast hooks
Guffawaffle Aug 29, 2026
b39cf0a
Centralize toast audio alert configuration
Guffawaffle Sep 2, 2026
6e638d9
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 2, 2026
218c594
Refine notification audio catalog and initialization
Guffawaffle Sep 3, 2026
898b040
Merge branch 'dev' into feature/cross-platform-audio-alerts
netniV Sep 5, 2026
43284c9
Merge dev into audio alerts and preserve example cue settings
Guffawaffle Sep 6, 2026
3746da9
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 7, 2026
7933965
Merge branch 'dev' into feature/cross-platform-audio-alerts
Guffawaffle Sep 16, 2026
fd15fb5
Add shared IL2CPP runtime boundary helpers with contract tests
Guffawaffle Sep 22, 2026
733997c
Narrow shared invocation helpers around existing loading screens
Guffawaffle Sep 22, 2026
d6c10b7
Guard existing IL2CPP class lookup when metadata is unavailable
Guffawaffle Sep 22, 2026
1151d28
Add fleet transition notifications (without held SPUD history)
Guffawaffle Sep 27, 2026
2a83b0d
Add fleet OPC highlights and mining ETA indicators on Windows and mac…
Guffawaffle Sep 27, 2026
9919dcc
Align fleet notifications PR with upstream dev
Guffawaffle Sep 28, 2026
10edf0e
Align OPC indicators with updated fleet notifications
Guffawaffle Sep 28, 2026
2d3af79
Merge remote-tracking branch 'origin/dev' into feature/fleet-transiti…
Guffawaffle Oct 2, 2026
5ecf293
Install fleet observers independently and read current notification p…
Guffawaffle Oct 2, 2026
4b0d57e
Match fleet event tokens by ASCII bytes and remove stale audio mask c…
Guffawaffle Oct 2, 2026
8061e36
Merge branch 'feature/fleet-transition-notifications' into feature/op…
Guffawaffle Oct 2, 2026
47ade00
Separate OPC hook readiness from preferences and clear disabled overlays
Guffawaffle Oct 2, 2026
0927907
Read actual mining-slot interface amounts for node-limited OPC estimates
Guffawaffle Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,13 @@ jobs:
- name: Build
run: xmake build -y stfc-community-mod

- name: Test fleet observation trackers
run: |
xmake build -y miner-opc-tests
xmake build -y fleet-arrival-tests
xmake run miner-opc-tests
xmake run fleet-arrival-tests

- name: Test x64 trampoline relocation
shell: pwsh
run: |
Expand Down Expand Up @@ -521,6 +528,13 @@ jobs:
shell: bash
run: sccache --show-stats

- name: Test fleet observation trackers
run: |
xmake build -y miner-opc-tests
xmake build -y fleet-arrival-tests
xmake run miner-opc-tests
xmake run fleet-arrival-tests

- name: Report Swift module cache
shell: bash
run: |
Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_da.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[======================================================================================================]>
#
# ***** * * *
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Forhindr "Escape" i at spørge, om spillet skal afsluttes
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_de.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Verhindert, dass die Escape-Taste zum Beenden des Spiels auffordert
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_en-GB-x-cockney.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Prevent "escape" from prompting to exit the game
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_en-x-minionese.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Prevent "escape" from prompting to exit the game
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
33 changes: 33 additions & 0 deletions example_community_patch_settings_en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -263,6 +282,10 @@ loadingtiphooks = true
doubleclickassignshiphooks = true
forbiddentechconfirmhooks = true
audioeventhooks = true
# Install fleet observers independently of the desktop/audio selections.
fleetnotificationhooks = true
# Install OPC indicator hooks independently of highlight and ETA preferences.
opcindicatorhooks = true
freeresizehooks = true
game_version = true
giftsbulkclaimhooks = true
Expand Down Expand Up @@ -655,6 +678,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Prevent "escape" from prompting to exit the game
disable_escape_exit = true

Expand Down Expand Up @@ -700,6 +729,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_es.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=====================================================]>
#
# * * *
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Impide que "Escape" pregunte si deseas salir del juego
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
29 changes: 29 additions & 0 deletions example_community_patch_settings_fr.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,25 @@ disabled_events = ""
# Write audio event names to the trace log for troubleshooting
trace_events = false

# Optional generated notification cues; "none" disables an alert.
# Available sounds: default, info, success, warning, alarm, arrival, soft, ping, repair
# Requires patches.toastbannerhooks = true.
alert_victory = "none"
alert_defeat = "none"
alert_armada_created = "none"
alert_armada_battle_won = "none"
alert_armada_battle_lost = "none"

# Fleet cues are independent of desktop notifications and toastbannerhooks.
# Use the sound names above; "none" disables a cue. Windows and macOS.
alert_fleet_arrived_in_system = "none"
alert_fleet_arrived_at_destination = "none"
alert_fleet_started_mining = "none"
alert_fleet_node_depleted = "none"
alert_fleet_docked = "none"
alert_fleet_repair_complete = "none"
alert_fleet_miner_opc = "none"

# <[=======================================]>
#
# **** ** **
Expand Down Expand Up @@ -644,6 +663,12 @@ auto_confirm_discovery = true
# Open the bulk gift claim flyout automatically
auto_open_bulk_claim_flyout = false

# Windows/macOS: highlight deployed fleet-bar portraits in amber when cargo exceeds protected cargo
highlight_opc_fleets = false

# Windows/macOS: show estimated time to over-protected cargo below mining fleet status
fleet_hud_opc_eta = false

# Empêcher "échap" de proposer de quitter le jeu
disable_escape_exit = true

Expand Down Expand Up @@ -689,6 +714,10 @@ disabled_banner_types = ""
# Specifies banner types that should trigger notifications (comma separated)
notify_banner_types = ""

# Fleet events that should trigger Windows/macOS notifications (comma separated, or "All")
# Options: ArrivedInSystem, ArrivedAtDestination, StartedMining, NodeDepleted, Docked, RepairComplete, MinerOPC
notify_fleet_events = ""

# Subgroup: Chat
# --------------

Expand Down
Loading
Loading