Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
450 commits
Select commit Hold shift + click to select a range
2055154
Adds lawboards to research
CrazyPhantom779 Sep 22, 2025
bc7367c
adjusted TEG to not blow itself apart and delam nearby SM if used wit…
APOCAMANDER Sep 22, 2025
31b0b7a
Remove redunant code previously added + Silicon category
CrazyPhantom779 Sep 22, 2025
d3e5c7d
Merge branch 'starlight-dev' into Leth_Upkeep
ShadesMars Sep 22, 2025
331fb82
Merge branch 'starlight-dev' into Leth_Upkeep
ShadesMars Sep 22, 2025
4a0edfe
Added Salvage Lead access type for lead lockers
mikeysaurus Sep 4, 2025
06577af
access fixes
mikeysaurus Sep 4, 2025
b3086ce
add chameleon outfit
mikeysaurus Sep 6, 2025
bb1d7a2
New sprites per feedback
mikeysaurus Sep 14, 2025
89e7d6d
Merge remote-tracking branch 'Starlight/starlight-dev' into salvageRo…
mikeysaurus Sep 22, 2025
1fa7216
Update base_borg_chassis.yml
Road-Train Sep 23, 2025
6b5bdf9
Update base_borg_chassis.yml
Road-Train Sep 23, 2025
3747e38
fixes
ShadesMars Sep 23, 2025
d2c4fed
Merge branch 'starlight-dev' into admin-spawn-fix
ShadesMars Sep 23, 2025
1d77d00
Merge branch 'starlight-dev' into records
ShadesMars Sep 23, 2025
3621af5
Fix custom names
ShadesMars Sep 23, 2025
c53a424
Merge branch 'starlight-dev' into Revert-Syndicate-cyborg-1984
Road-Train Sep 23, 2025
5f88374
Merge branch 'starlight-dev' into Lawboard-Descriptions-Show-Laws
ShadesMars Sep 24, 2025
3293b7d
Fix
CrazyPhantom779 Sep 24, 2025
19423e7
Fix?
CrazyPhantom779 Sep 24, 2025
146976c
Merge remote-tracking branch 'Starlight/starlight-dev' into salvageRo…
mikeysaurus Sep 24, 2025
9542c20
moving treps shuttle+guaranteed fuel to a different PR
mikeysaurus Sep 24, 2025
0fcee57
Meta copyright fix
CrazyPhantom779 Sep 24, 2025
ffa143d
Merge branch 'starlight-dev' into vulp-custom-name-fix
ShadesMars Sep 24, 2025
2b70fdb
Merge branch 'starlight-dev' into admin-spawn-fix
ShadesMars Sep 24, 2025
33a2993
Merge branch 'starlight-dev' into records
ShadesMars Sep 24, 2025
c019a65
init
wayiscool Sep 24, 2025
23be01e
Update nanotrasenrepresentative.yml
wayiscool Sep 24, 2025
acfdd4e
add crate back
mikeysaurus Sep 25, 2025
1147c9b
Reverted Mining shuttle to wizden, SL has a _Starlight version now
mikeysaurus Sep 25, 2025
a807444
Merge branch 'starlight-dev' into Revert-Syndicate-cyborg-1984
Road-Train Sep 25, 2025
91285d3
fix
wayiscool Sep 25, 2025
5f83507
fix(records): display species as “Custom (Base)” or Base; add robust …
dirrgang Sep 25, 2025
5344d2e
fix recycler for the second time
Arkanic Sep 26, 2025
b30e328
Syndrunner part 1
StarlightHost Sep 24, 2025
7b222b9
Record size and weight is now derived from Starlight's character editor.
dirrgang Sep 26, 2025
004189f
sprite fix
wayiscool Sep 26, 2025
98e8848
Slightly increase brightness of sprite
wayiscool Sep 26, 2025
00c1666
increase sprite brightness #2
wayiscool Sep 26, 2025
35b5252
Update jumpsuits.yml
wayiscool Sep 26, 2025
b434cfb
Merge branch 'starlight-dev' into SilicaStation-Update3
CawsForConcern Sep 26, 2025
2ccc13d
made cargo less sad
CawsForConcern Sep 26, 2025
21c50fc
Nuclear bomb improvements
DoubleHypercube Sep 26, 2025
be64bb6
Merge branch 'starlight-dev' into nuke_improvement
DoubleHypercube Sep 26, 2025
abd306f
recycler in salvage bay
CawsForConcern Sep 27, 2025
bbaec2c
further brightness adjustments
wayiscool Sep 27, 2025
4ead9fd
New skirt version
wayiscool Sep 27, 2025
d7a8e11
misc
wayiscool Sep 27, 2025
f76ef57
brightness adjustments
wayiscool Sep 27, 2025
1d14e8e
name/description consistency fixes
wayiscool Sep 27, 2025
22389ad
atmos expansion
CawsForConcern Sep 27, 2025
b92e2e8
Merge branch 'starlight-dev' into records
dirrgang Sep 27, 2025
7648bfd
Update jumpskirts.yml
wayiscool Sep 27, 2025
4a12e17
minor tweaks, testing time
CawsForConcern Sep 27, 2025
daa5193
- TEG beacon moved
CawsForConcern Sep 27, 2025
e26cc33
Update Resources/Prototypes/Entities/Structures/Machines/nuke.yml
DoubleHypercube Sep 27, 2025
5c71f6f
- Renamed ALL of the cameras (hhhh)
CawsForConcern Sep 27, 2025
9a37800
- Camera tweaks
CawsForConcern Sep 27, 2025
7c091c1
Updated map
KarmaKitsuna Sep 27, 2025
3e9c1b0
Updated Map added
KarmaKitsuna Sep 27, 2025
14fe92f
Small spawn fix and some reinforcement of perma.
APOCAMANDER Sep 27, 2025
2eb4ff4
add N2 gas canisters to all job-related lockers that had O2
mikeysaurus Sep 26, 2025
4bff9a1
add to firesuit crate
mikeysaurus Sep 27, 2025
6463f18
update my attribution
mikeysaurus Sep 28, 2025
00ef29c
Emergency Shuttle Disable Command + Communication Console Cooldown Di…
CrazyPhantom779 Sep 28, 2025
7cc59e3
Update Content.Shared/Buckle/Components/StrapComponent.cs
walksanatora Sep 28, 2025
50c87ab
Merge branch 'ss14Starlight:Starlight' into Roboticist-Access
CrazyPhantom779 Sep 28, 2025
8c038bd
Merge branch 'ss14Starlight:Starlight' into Emergency-Shuttle-Disable…
CrazyPhantom779 Sep 28, 2025
9704372
Merge branch 'ss14Starlight:Starlight' into Lawboard-Descriptions-Sho…
CrazyPhantom779 Sep 28, 2025
4907907
Remove testing remenant
CrazyPhantom779 Sep 28, 2025
6a7dab2
Merge branch 'Emergency-Shuttle-Disable-Command' of https://github.co…
CrazyPhantom779 Sep 28, 2025
22d981f
Starlight Comments
CrazyPhantom779 Sep 28, 2025
1ae99d4
pinpointer in vault
CawsForConcern Sep 28, 2025
bf81130
Merge branch 'starlight-dev' into voting-memorize
Rinary1 Sep 28, 2025
d755eb7
init
Rinary1 Sep 28, 2025
0c5dce0
copyright fix via request
wayiscool Sep 28, 2025
a56e3eb
finishing touches
CawsForConcern Sep 28, 2025
8386b16
Merge pull request #1751 from ss14Starlight/fix/actions-cooldown
walksanatora Sep 28, 2025
5afdba6
Update changelog for PR #1751 [skip ci]
github-actions[bot] Sep 28, 2025
8df69c3
Merge pull request #1747 from KarmaKitsuna/starlight-Gateway-update
walksanatora Sep 28, 2025
21aa74c
Merge pull request #1740 from Arkanic/recycler-fix-2
walksanatora Sep 28, 2025
a2712b4
Update changelog for PR #1747 [skip ci]
github-actions[bot] Sep 28, 2025
131674f
Merge pull request #1748 from mikeysaurus/addN2ToAllLockers2
walksanatora Sep 28, 2025
35682ec
Merge pull request #1746 from wayiscool/ntrepturtleneck
walksanatora Sep 28, 2025
fc39151
Update changelog for PR #1748 [skip ci]
github-actions[bot] Sep 28, 2025
657b0d9
Merge pull request #1419 from ss14Starlight/voting-memorize
walksanatora Sep 28, 2025
e87baee
Update changelog for PR #1419 [skip ci]
github-actions[bot] Sep 28, 2025
383221e
cleaned up invalid devices
CawsForConcern Sep 28, 2025
240936c
Merge branch 'starlight-dev' into SilicaStation-Update3
CawsForConcern Sep 28, 2025
9317c4a
updates to mining stuff per feedback
mikeysaurus Sep 28, 2025
1d736ce
Update Content.Client/Communications/UI/CommunicationsConsoleBoundUse…
CrazyPhantom779 Sep 28, 2025
b340006
Apply suggestions from code review
CrazyPhantom779 Sep 28, 2025
a77c725
Merge remote-tracking branch 'Starlight/starlight-dev' into salvageRo…
mikeysaurus Sep 28, 2025
0d0de77
Merge pull request #1044 from mikeysaurus/salvageRolesExpansion
walksanatora Sep 28, 2025
9f4e1e9
Update changelog for PR #1044 [skip ci]
github-actions[bot] Sep 28, 2025
e9ddd8f
Merge pull request #1716 from APOCAMANDER/Leth_Upkeep
walksanatora Sep 28, 2025
7d93c6d
Merge pull request #1545 from APOCAMANDER/SL_Reach_upkeep
walksanatora Sep 28, 2025
44b0102
Update changelog for PR #1716 [skip ci]
github-actions[bot] Sep 28, 2025
a8625e6
Update changelog for PR #1545 [skip ci]
github-actions[bot] Sep 28, 2025
59a2e09
Linter and error fixes
CrazyPhantom779 Sep 28, 2025
e125f36
Merge branch 'starlight-dev' into Roboticist-Access
CrazyPhantom779 Sep 28, 2025
e8ea074
Merge branch 'starlight-dev' into Lawboard-Descriptions-Show-Laws
CrazyPhantom779 Sep 28, 2025
8f12044
Fix merge conflicts + Fix overlooked
CrazyPhantom779 Sep 28, 2025
97cbe32
Linter fix
CrazyPhantom779 Sep 28, 2025
f048db9
Redone Robotics Sprites
CrazyPhantom779 Sep 28, 2025
b1885fd
Merge branch 'starlight-dev' into nuke_improvement
DoubleHypercube Sep 28, 2025
8080ca3
remove comment
DoubleHypercube Sep 28, 2025
69b3435
Update Content.Server/Administration/Systems/AdminVerbSystem.cs
walksanatora Sep 29, 2025
243d089
Update Content.Server/Administration/Systems/AdminVerbSystem.cs
walksanatora Sep 29, 2025
9373626
Update Content.Server/Administration/Systems/AdminVerbSystem.cs
walksanatora Sep 29, 2025
e0ff891
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
c14a446
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
1570133
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
758576d
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
6850404
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
dd07f49
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
df3e7a9
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
98d3a20
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
05f5855
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
fbfe38b
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
1d8356e
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
e9105f7
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
42e54bf
Update Content.Server/Traits/TraitSystem.cs
walksanatora Sep 29, 2025
a9c8361
Update Content.Shared/_Starlight/Character/Info/SLSharedCharacterInfo…
walksanatora Sep 29, 2025
c61833a
Merge pull request #1723 from FoxxoTrystan/vulp-custom-name-fix
walksanatora Sep 29, 2025
66d57fa
Update changelog for PR #1723 [skip ci]
github-actions[bot] Sep 29, 2025
795aecb
Merge pull request #1722 from FoxxoTrystan/admin-spawn-fix
walksanatora Sep 29, 2025
4c24225
Merge pull request #1749 from CrazyPhantom779/Emergency-Shuttle-Disab…
walksanatora Sep 29, 2025
0c8eadf
Update changelog for PR #1749 [skip ci]
github-actions[bot] Sep 29, 2025
946e2ec
Fix?
CrazyPhantom779 Sep 29, 2025
2cbc010
Fix!....?
CrazyPhantom779 Sep 29, 2025
8579c8c
Merge pull request #1520 from CrazyPhantom779/Roboticist-Access
walksanatora Sep 29, 2025
8400a44
Update changelog for PR #1520 [skip ci]
github-actions[bot] Sep 29, 2025
dbbe8f3
Fix QM over ear headset
CrazyPhantom779 Sep 29, 2025
a4243f7
Merge branch 'starlight-dev' into SilicaStation-Update3
CawsForConcern Sep 29, 2025
83f2858
Message for toggling in space
DoubleHypercube Sep 29, 2025
8120e3b
Merge branch 'starlight-dev' into Lawboard-Descriptions-Show-Laws
CrazyPhantom779 Sep 29, 2025
d227533
Merge pull request #1754 from CrazyPhantom779/Hotfix.-QM-headset-expe…
walksanatora Sep 29, 2025
a5501b2
Update changelog for PR #1754 [skip ci]
github-actions[bot] Sep 29, 2025
f251153
HoP's digiboard fix
CrazyPhantom779 Sep 29, 2025
58d1813
Merge pull request #1755 from CrazyPhantom779/HOTFIX-ID-card-computers
walksanatora Sep 29, 2025
bb037ee
- Salvage Lead added
CawsForConcern Sep 29, 2025
5fc355d
Update changelog for PR #1755 [skip ci]
github-actions[bot] Sep 29, 2025
99c2150
SL comments
DoubleHypercube Sep 29, 2025
8648dee
SLify
DoubleHypercube Sep 29, 2025
1b12d72
Merge pull request #1752 from CawsForConcern/SilicaStation-Update3
walksanatora Sep 29, 2025
30b3a0e
fine
DoubleHypercube Sep 29, 2025
c157eac
Update changelog for PR #1752 [skip ci]
github-actions[bot] Sep 29, 2025
c635b42
Merge pull request #1744 from AutumnalModding/nuke_improvement
walksanatora Sep 29, 2025
38ef832
Update changelog for PR #1744 [skip ci]
github-actions[bot] Sep 29, 2025
edaa25f
Toilets no longer blind you
CrazyPhantom779 Sep 29, 2025
cb5e76b
fix missing channels
mikeysaurus Sep 29, 2025
0ed2033
fix missing access
mikeysaurus Sep 29, 2025
732b44f
HOTFIX. Chem Bags can no longer take Patch packs
CrazyPhantom779 Sep 29, 2025
252cc5e
HOTFIX. Rules typo fix
CrazyPhantom779 Sep 29, 2025
737c586
Merge pull request #1759 from CrazyPhantom779/HOTFIX-Rules-typo-fix
walksanatora Sep 29, 2025
5d76ee6
Merge pull request #1758 from CrazyPhantom779/HOTFIX-Stop-patchpacks-…
walksanatora Sep 29, 2025
aa3145b
Merge pull request #1757 from mikeysaurus/fixSalvVendAccess
walksanatora Sep 29, 2025
b9b2c6b
Update changelog for PR #1759 [skip ci]
github-actions[bot] Sep 29, 2025
9f341de
Update changelog for PR #1758 [skip ci]
github-actions[bot] Sep 29, 2025
480c2f6
Update changelog for PR #1757 [skip ci]
github-actions[bot] Sep 29, 2025
0374930
Update base_borg_chassis.yml
Road-Train Sep 29, 2025
ed5e201
Merge branch 'starlight-dev' into Revert-Syndicate-cyborg-1984
Road-Train Sep 29, 2025
33f7317
Merge pull request #1736 from ss14Starlight/net/syndrunner
walksanatora Sep 29, 2025
f3ad122
Update changelog for PR #1736 [skip ci]
github-actions[bot] Sep 29, 2025
6916e78
HOTFIX. Added Axtended access's for Surgery, Robotics and Paramedic
CrazyPhantom779 Sep 29, 2025
789dc72
Update Resources/Prototypes/Roles/Jobs/Science/scientist.yml
walksanatora Sep 29, 2025
ffcc0e8
Merge branch 'starlight-dev' into Revert-Syndicate-cyborg-1984
Road-Train Sep 29, 2025
88628fc
mining saps fix
Conflee Sep 29, 2025
17c4b88
fuck you SalvageShuttleConsoleCircuitboard
Conflee Sep 29, 2025
526c625
the unfuckening
Conflee Sep 29, 2025
a6d3966
Merge pull request #1721 from Road-Train/Revert-Syndicate-cyborg-1984
walksanatora Sep 29, 2025
e311325
Update changelog for PR #1721 [skip ci]
github-actions[bot] Sep 29, 2025
995ab12
Merge pull request #1760 from CrazyPhantom779/HOTFIX-Extended-Access-…
walksanatora Sep 29, 2025
e0bbcc1
Update changelog for PR #1760 [skip ci]
github-actions[bot] Sep 29, 2025
c82cfa8
prism spawner, invalid gone from starboard
walksanatora Sep 29, 2025
ebbcd62
Merge pull request #1 from walksanatora/salvmapfix
Conflee Sep 29, 2025
99db8ed
BEGONE MIDROUND ZEDS
Road-Train Sep 29, 2025
3cf9d29
Merge pull request #1761 from Conflee/miningmapfixes
walksanatora Sep 29, 2025
97fd9e4
Update changelog for PR #1761 [skip ci]
github-actions[bot] Sep 29, 2025
0d00e5e
Update Content.Shared/_Starlight/Eye/Blinding/Systems/ChildBlockVisio…
CrazyPhantom779 Sep 29, 2025
47cec69
Note to self dont code and drink. I forgot you can override comps fro…
CrazyPhantom779 Sep 29, 2025
cf201e7
- fix: Missing crew monitoring server added to CMO Office
CawsForConcern Sep 29, 2025
62aea97
- add: Medical dispenser credit shop to Medbay
CawsForConcern Sep 29, 2025
deb70e3
- fix: Air Alarm hooked up to nothing in Engie Hallway
CawsForConcern Sep 29, 2025
53c2f58
- tweak: Atmospherics meteor protection beefed up
CawsForConcern Sep 29, 2025
1ab795c
Linter fix
CrazyPhantom779 Sep 29, 2025
9a8e73b
Happy linter?
CrazyPhantom779 Sep 29, 2025
3b62ac7
Happy linter?
CrazyPhantom779 Sep 29, 2025
d83ba16
- add: Fax machine to HOP
CawsForConcern Sep 29, 2025
45a6bd4
recharger moved to Bridge
CawsForConcern Sep 29, 2025
477b7bb
Fix!....?
CrazyPhantom779 Sep 29, 2025
89e4db3
- add: Mining magnet to Salvage
CawsForConcern Sep 29, 2025
bf4271c
Make Overlord static
CrazyPhantom779 Sep 30, 2025
199a54e
- add: Funding computer to HOP
CawsForConcern Sep 30, 2025
3fa5aa1
- fix: (Hotel) Disposals wiring changed so it just works on round start
CawsForConcern Sep 30, 2025
fe8a642
- fix: (Silica) Floating camera in Cargo Bay, moved to north wall of …
CawsForConcern Sep 30, 2025
91de787
Monocle
Sep 30, 2025
b183b5d
Update hats.yml
Vontens Sep 30, 2025
6a78e41
Merge pull request #1507 from CrazyPhantom779/Lawboard-Descriptions-S…
Happyrobot33 Sep 30, 2025
c5100c3
Update changelog for PR #1507 [skip ci]
github-actions[bot] Sep 30, 2025
4156e75
Merge branch 'starlight-dev' into fuck-midround-zeds
Road-Train Sep 30, 2025
a912218
Begone zombie shitters!
CrazyPhantom779 Sep 30, 2025
a9fb633
Whitelist the Paddy to only use non-lethals.
DoubleHypercube Sep 30, 2025
a863a8b
Merge pull request #1772 from CrazyPhantom779/Zombies-no-longer-can-b…
walksanatora Sep 30, 2025
b5e9c62
Update changelog for PR #1772 [skip ci]
github-actions[bot] Sep 30, 2025
055cb15
Merge branch 'starlight-dev' into fuck-midround-zeds
Road-Train Sep 30, 2025
62b72b2
The greath respriteth
ScarletLightweaverSS14 Sep 30, 2025
0d532a1
nonlethals to combat mech
DoubleHypercube Sep 30, 2025
75dd7c9
Merge branch 'starlight-dev' into paddyfix
DoubleHypercube Sep 30, 2025
443eff0
Merge pull request #1756 from CrazyPhantom779/HOTFIX-Toilets-blocking…
walksanatora Sep 30, 2025
075cbd5
Update changelog for PR #1756 [skip ci]
github-actions[bot] Sep 30, 2025
8a77e07
Update events.yml
Road-Train Sep 30, 2025
b70bf6f
Merge branch 'starlight-dev' into fuck-midround-zeds
Road-Train Sep 30, 2025
d5c8be7
Merge pull request #1768 from CawsForConcern/OriginFixes
walksanatora Sep 30, 2025
0450223
Update changelog for PR #1768 [skip ci]
github-actions[bot] Sep 30, 2025
7b13604
Merge pull request #1775 from ScarletLightweaverSS14/The-great-bluesh…
walksanatora Sep 30, 2025
10c07ee
Merge branch 'starlight-dev' into fuck-midround-zeds
Road-Train Sep 30, 2025
71f3de7
Merge branch 'starlight-dev' into records
ShadesMars Sep 30, 2025
8a1f6b4
Merge pull request #1773 from AutumnalModding/paddyfix
ShadesMars Sep 30, 2025
afe87e8
Merge pull request #1770 from CawsForConcern/SilicaFloatingCamera
ShadesMars Sep 30, 2025
4392d1f
Merge branch 'starlight-dev' into fuck-midround-zeds
Road-Train Sep 30, 2025
b620ad5
Update changelog for PR #1773 [skip ci]
github-actions[bot] Sep 30, 2025
4ac0888
init
Rinary1 Sep 30, 2025
473582c
Revert "Whitelist the Paddy to only use non-lethals."
Road-Train Sep 30, 2025
e860e34
Update Content.Server/_Starlight/Implants/USSPUplinkSystem.cs
walksanatora Sep 30, 2025
a155eda
Less of a revert, rather a patch. Basic lethals ( and starlight comme…
Road-Train Sep 30, 2025
36a965a
Update combat.yml
Road-Train Sep 30, 2025
7ab5b31
Update combat.yml
Road-Train Sep 30, 2025
dc2e32d
Merge pull request #1776 from ss14Starlight/fix/uplink-implant
walksanatora Sep 30, 2025
494d823
Merge branch 'starlight-dev' into revert-1773-paddyfix
Road-Train Sep 30, 2025
edea1a2
Update changelog for PR #1776 [skip ci]
github-actions[bot] Sep 30, 2025
59ac388
Merge branch 'starlight-dev' into revert-1773-paddyfix
Road-Train Sep 30, 2025
e1a5b72
Merge pull request #1777 from Road-Train/revert-1773-paddyfix
walksanatora Sep 30, 2025
39d631f
Update changelog for PR #1777 [skip ci]
github-actions[bot] Sep 30, 2025
42856ee
Merge pull request #1771 from Vontens/NTR_Monocle
ShadesMars Sep 30, 2025
c03d922
Merge pull request #1769 from CawsForConcern/HotelDisposals
ShadesMars Sep 30, 2025
605730b
Merge pull request #1767 from CawsForConcern/LobsterMagnet
ShadesMars Sep 30, 2025
a294416
Merge pull request #1765 from CawsForConcern/OmegaFaxMachine
ShadesMars Sep 30, 2025
17f4aca
Merge pull request #1764 from CawsForConcern/ClusterUpdate1
ShadesMars Sep 30, 2025
b116bb2
Merge pull request #1762 from Road-Train/fuck-midround-zeds
ShadesMars Sep 30, 2025
aa3581c
Merge pull request #1678 from dirrgang/records
ShadesMars Sep 30, 2025
e120ad3
Update changelog for PR #1770 [skip ci]
github-actions[bot] Sep 30, 2025
46f0a63
Update changelog for PR #1771 [skip ci]
github-actions[bot] Sep 30, 2025
1a05678
Update changelog for PR #1765 [skip ci]
github-actions[bot] Sep 30, 2025
56078e6
Update changelog for PR #1764 [skip ci]
github-actions[bot] Sep 30, 2025
c8f3d3f
Update changelog for PR #1678 [skip ci]
github-actions[bot] Sep 30, 2025
c106a57
Update changelog for PR #1769 [skip ci]
github-actions[bot] Sep 30, 2025
ec061a8
Update changelog for PR #1767 [skip ci]
github-actions[bot] Sep 30, 2025
171699f
Update changelog for PR #1762 [skip ci]
github-actions[bot] Sep 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
45 changes: 37 additions & 8 deletions Content.Client/Access/UI/AccessLevelControl.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ public AccessLevelControl()

public void Populate(List<ProtoId<AccessLevelPrototype>> accessLevels, IPrototypeManager prototypeManager)
{
// Starlight-edit: Start
RemoveAllChildren();
ButtonsList.Clear();

if (accessLevels.Count == 0)
return;
// Starlight-edit: End
foreach (var access in accessLevels)
{
if (!prototypeManager.TryIndex(access, out var accessLevel))
Expand All @@ -45,27 +52,49 @@ public void Populate(List<ProtoId<AccessLevelPrototype>> accessLevels, IPrototyp
ButtonsList.Add(accessLevel.ID, newButton);
}
}

// Starlight-edit: Start
public void UpdateState(
List<ProtoId<AccessLevelPrototype>> pressedList,
ProtoId<AccessGroupPrototype>? currentGroup, // Starlight-edit: access groups
IPrototypeManager? prototypeManager = null, // Starlight-edit: access groups
ProtoId<AccessGroupPrototype>? currentGroup,
IPrototypeManager? prototypeManager = null,
List<ProtoId<AccessLevelPrototype>>? enabledList = null)
{
// Starlight-start: Access groups
if (currentGroup != null && prototypeManager != null && prototypeManager.TryIndex(currentGroup.Value, out var group))
if (enabledList == null || enabledList.Count == 0)
{
RemoveAllChildren();
ButtonsList.Clear();
return;
}

if (prototypeManager == null)
{
RemoveAllChildren();
ButtonsList.Clear();
return;
}

RemoveAllChildren();
ButtonsList.Clear();

Populate(group.Tags.ToList(), prototypeManager);
List<ProtoId<AccessLevelPrototype>> accessesToShow;

if (currentGroup != null && prototypeManager.TryIndex(currentGroup.Value, out var group))
{
accessesToShow = group.Tags.Where(tag => enabledList.Contains(tag)).ToList();
}
// Starlight-end
else
{
accessesToShow = enabledList;
}

// Only show access levels that are allowed by the privileged ID
Populate(accessesToShow, prototypeManager);
// Starlight-edit: End

foreach (var (accessName, button) in ButtonsList)
{
button.Pressed = pressedList.Contains(accessName);
button.Disabled = !(enabledList?.Contains(accessName) ?? true);
button.Disabled = false; // Starlight
}
}
}
17 changes: 15 additions & 2 deletions Content.Client/Access/UI/AccessOverriderBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@ protected override void Open()
RefreshAccess();
_window.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;
_window.OnSubmit += SubmitData;
_window.OnGroupSelected += group => SendMessage(new AccessGroupSelectedMessage(group)); // Starlight-edit

_window.PrivilegedIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(PrivilegedIdCardSlotId));
}

public override void OnProtoReload(PrototypesReloadedEventArgs args)
{
base.OnProtoReload(args);
if (!args.WasModified<AccessLevelPrototype>())
if (!args.WasModified<AccessLevelPrototype>() && !args.WasModified<AccessGroupPrototype>()) // Starlight-edit
return;

RefreshAccess();
Expand All @@ -47,19 +48,31 @@ public override void OnProtoReload(PrototypesReloadedEventArgs args)
private void RefreshAccess()
{
List<ProtoId<AccessLevelPrototype>> accessLevels;
// Starlight-edit: Start
List<ProtoId<AccessGroupPrototype>> accessGroups;
ProtoId<AccessGroupPrototype>? currentGroup = null;
// Starlight-edit: End

if (EntMan.TryGetComponent<AccessOverriderComponent>(Owner, out var accessOverrider))
{
accessLevels = accessOverrider.AccessLevels;
accessLevels.Sort();

// Starlight-edit: Start
accessGroups = accessOverrider.AccessGroups;
accessGroups.Sort();
// Starlight-edit: End

currentGroup = accessOverrider.CurrentAccessGroup;
}
else
{
accessLevels = new List<ProtoId<AccessLevelPrototype>>();
accessGroups = new List<ProtoId<AccessGroupPrototype>>(); // Starlight-edit
_accessOverriderSystem.Log.Error($"No AccessOverrider component found for {EntMan.ToPrettyString(Owner)}!");
}

_window?.SetAccessLevels(_prototypeManager, accessLevels);
_window?.SetAccess(_prototypeManager, accessGroups, currentGroup, accessLevels); // Starlight-edit
}

protected override void UpdateState(BoundUserInterfaceState state)
Expand Down
13 changes: 8 additions & 5 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<DefaultWindow xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
MinSize="650 290">
<BoxContainer Orientation="Vertical">
<GridContainer Columns="2">
Expand All @@ -10,11 +11,13 @@
</GridContainer>
<Label Name="TargetNameLabel" />
<Control MinSize="0 8"/>
<GridContainer Name="AccessLevelGrid" Columns="5" HorizontalAlignment="Center">

<!-- Access level buttons are added here by the C# code -->

</GridContainer>
<!-- Starlight-start: Access Groups -->
<BoxContainer Orientation="Horizontal">
<Control Name="AccessGroupControlContainer" /> <!-- Access Groups Buttons -->
<cc:VSeparator Color="#a88b5e" Margin="5 0 5 0" /> <!-- Separator -->
<Control Name="AccessLevelControlContainer" /> <!-- Access Level Buttons -->
</BoxContainer>
<!-- Starlight-end: Access Groups -->
<Control MinSize="0 8"/>
<Label Name="MissingPrivilegesLabel" />
<Control MinSize="0 4"/>
Expand Down
124 changes: 98 additions & 26 deletions Content.Client/Access/UI/AccessOverriderWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Linq;
using Content.Client._Starlight.Access.UI; // Starlight-edit
using Content.Shared.Access;
using Content.Shared.Access.Systems;
using Robust.Client.AutoGenerated;
Expand All @@ -13,40 +14,51 @@ namespace Content.Client.Access.UI
[GenerateTypedNameReferences]
public sealed partial class AccessOverriderWindow : DefaultWindow
{
private readonly Dictionary<string, Button> _accessButtons = new();
// Starlight-edit: Start
private readonly AccessLevelControl _accessButtons = new();
private readonly AccessGroupControl _accessGroups = new();
private readonly Dictionary<string, Button> _legacyAccessButtons = new();
// Starlight-edit: End

public event Action<List<ProtoId<AccessLevelPrototype>>>? OnSubmit;
public event Action<ProtoId<AccessGroupPrototype>>? OnGroupSelected; // Starlight-edit

public AccessOverriderWindow()
{
RobustXamlLoader.Load(this);
}

public void SetAccessLevels(IPrototypeManager protoManager, List<ProtoId<AccessLevelPrototype>> accessLevels)
// Starlight-edit: Start
public void SetAccess(IPrototypeManager protoManager, List<ProtoId<AccessGroupPrototype>> accessGroups, ProtoId<AccessGroupPrototype>? currentGroup, List<ProtoId<AccessLevelPrototype>> accessLevels)
{
_accessButtons.Clear();
AccessLevelGrid.DisposeAllChildren();
// Clear existing containers
AccessGroupControlContainer.RemoveAllChildren();
AccessLevelControlContainer.RemoveAllChildren();

foreach (var access in accessLevels)
{
if (!protoManager.Resolve(access, out var accessLevel))
{
continue;
}
// Groups
_accessGroups.Populate(accessGroups, currentGroup ?? accessGroups.FirstOrDefault(), protoManager);
AccessGroupControlContainer.AddChild(_accessGroups);

var newButton = new Button
{
Text = accessLevel.GetAccessLevelName(),
ToggleMode = true,
};
// Levels
_accessButtons.Populate(accessLevels, protoManager);
AccessLevelControlContainer.AddChild(_accessButtons);

// Wire up group selection events
foreach (var (id, button) in _accessGroups.ButtonsList)
{
button.OnPressed += _ => OnGroupSelected?.Invoke(id);
}

AccessLevelGrid.AddChild(newButton);
_accessButtons.Add(accessLevel.ID, newButton);
newButton.OnPressed += _ =>
// Wire up level presses -> submit list
foreach (var (id, button) in _accessButtons.ButtonsList)
{
button.OnPressed += _ =>
{
OnSubmit?.Invoke(
// Iterate over the buttons dictionary, filter by `Pressed`, only get key from the key/value pair
_accessButtons.Where(x => x.Value.Pressed).Select(x => new ProtoId<AccessLevelPrototype>(x.Key)).ToList());
_accessButtons.ButtonsList.Where(x => x.Value.Pressed)
.Select(x => new ProtoId<AccessLevelPrototype>(x.Key))
.ToList());
// Starlight-edit: End
};
}
}
Expand Down Expand Up @@ -83,16 +95,76 @@ public void UpdateState(IPrototypeManager protoManager, AccessOverriderBoundUser

var interfaceEnabled = state.IsPrivilegedIdPresent && state.IsPrivilegedIdAuthorized;

foreach (var (accessName, button) in _accessButtons)
// Starlight-edit: Start
var allowedAccess = interfaceEnabled && state.AllowedModifyAccessList != null
? state.AllowedModifyAccessList.ToList()
: new List<ProtoId<AccessLevelPrototype>>();

var groupsWithCoverage = new List<ProtoId<AccessGroupPrototype>>();
if (allowedAccess.Count > 0 && state.AccessGroups != null)
{
button.Disabled = !interfaceEnabled;
if (interfaceEnabled)
foreach (var g in state.AccessGroups)
{
// Explicit cast because Rider gives a false error otherwise.
button.Pressed = state.TargetAccessReaderIdAccessList?.Contains((ProtoId<AccessLevelPrototype>) accessName) ?? false;
button.Disabled = (!state.AllowedModifyAccessList?.Contains((ProtoId<AccessLevelPrototype>) accessName)) ?? true;
if (!protoManager.TryIndex(g, out AccessGroupPrototype? gp))
continue;

var groupTags = gp.Tags.Where(tag =>
protoManager.TryIndex<AccessLevelPrototype>(tag, out var accessProto) &&
accessProto.CanAddToIdCard).ToList();

if (groupTags.Count == 0)
continue;

var matchingTags = groupTags.Count(tag => allowedAccess.Contains(tag));
var threshold = Math.Max(1, Math.Min(3, groupTags.Count / 2));

if (matchingTags >= threshold)
groupsWithCoverage.Add(gp.ID);
}
}

var showGroups = groupsWithCoverage.Count > 1;

AccessGroupControlContainer.RemoveAllChildren();
AccessLevelControlContainer.RemoveAllChildren();

if (showGroups)
{
ProtoId<AccessGroupPrototype> selectedGroup =
state.CurrentAccessGroup.HasValue && groupsWithCoverage.Contains(state.CurrentAccessGroup.Value)
? state.CurrentAccessGroup.Value
: groupsWithCoverage.First();

_accessGroups.Populate(groupsWithCoverage, selectedGroup, protoManager);
AccessGroupControlContainer.Visible = true;
AccessGroupControlContainer.AddChild(_accessGroups);

foreach (var (id, button) in _accessGroups.ButtonsList)
button.OnPressed += _ => OnGroupSelected?.Invoke(id);
}
else
{
AccessGroupControlContainer.Visible = false;
}

ProtoId<AccessGroupPrototype>? effectiveGroup =
showGroups ? state.CurrentAccessGroup : null;

_accessButtons.UpdateState(
state.TargetAccessReaderIdAccessList?.ToList() ?? new List<ProtoId<AccessLevelPrototype>>(),
effectiveGroup,
protoManager,
allowedAccess);
AccessLevelControlContainer.AddChild(_accessButtons);

foreach (var (id, button) in _accessButtons.ButtonsList)
{
button.OnPressed += _ => OnSubmit?.Invoke(
_accessButtons.ButtonsList.Where(x => x.Value.Pressed)
.Select(x => new ProtoId<AccessLevelPrototype>(x.Key))
.ToList());
// Starlight-edit: End
}
}
}
}
2 changes: 1 addition & 1 deletion Content.Client/Access/UI/AgentIDCardWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public AgentIDCardWindow()

public void SetAllowedIcons(string currentJobIconId)
{
IconGrid.DisposeAllChildren();
IconGrid.RemoveAllChildren(); // Starlight-edit

var jobIconButtonGroup = new ButtonGroup();
var i = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,10 @@ private void ArrangeAccessControls()

private bool TryRebuildAccessGroupControls()
{
AccessGroupList.DisposeAllChildren();
AccessLevelChecklist.DisposeAllChildren();
// Starlight-edit: Start
AccessGroupList.RemoveAllChildren();
AccessLevelChecklist.RemoveAllChildren();
// Starlight-edit: End

// No access level prototypes were assigned to any of the access level groups.
// Either the turret controller has no assigned access levels or their names were invalid.
Expand Down Expand Up @@ -165,7 +167,7 @@ private bool TryRebuildAccessGroupControls()
/// </summary>
public void RebuildAccessLevelsControls()
{
AccessLevelChecklist.DisposeAllChildren();
AccessLevelChecklist.RemoveAllChildren(); // Starlight
_accessLevelEntries.Clear();

// No access level prototypes were assigned to any of the access level groups
Expand Down
35 changes: 16 additions & 19 deletions Content.Client/Access/UI/IdCardConsoleBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
using Content.Shared.CCVar;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.CrewManifest;
using Content.Shared._Starlight.Access; // Starlight-edit
using Content.Shared.Roles;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.IdCardConsoleComponent;
// Starlight-edit: Start
using Robust.Client.UserInterface;
using Content.Shared._Starlight.Access;
// Starlight-edit: End

namespace Content.Client.Access.UI
{
Expand All @@ -35,24 +38,11 @@ public IdCardConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner
protected override void Open()
{
base.Open();
List<ProtoId<AccessGroupPrototype>> accessGroups; // Starlight-edit

if (EntMan.TryGetComponent<IdCardConsoleComponent>(Owner, out var idCard))
{
accessGroups = idCard.AccessGroups; // Starlight-edit
}
else
{
accessGroups = new List<ProtoId<AccessGroupPrototype>>(); // Starlight-edit
_idCardConsoleSystem.Log.Error($"No IdCardConsole component found for {EntMan.ToPrettyString(Owner)}!");
}

_window = new IdCardConsoleWindow(this, _prototypeManager, accessGroups) // Starlight-edit
{
Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName
};

_window.OnGroupSelected += group => SendMessage(new AccessGroupSelectedMessage(group)); // Starlight-edit
// Starlight-edit: Start
_window = this.CreateWindow<IdCardConsoleWindow>();
_window.Initialize(this);
_window.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;
// Starlight-edit: End
_window.CrewManifestButton.OnPressed += _ => SendMessage(new CrewManifestOpenUiMessage());
_window.PrivilegedIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(PrivilegedIdCardSlotId));
_window.TargetIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(TargetIdCardSlotId));
Expand Down Expand Up @@ -91,5 +81,12 @@ public void SubmitData(string newFullName, string newJobTitle, List<ProtoId<Acce
newAccessList,
newJobPrototype));
}
// Starlight-edit: Start

public void OnGroupSelected(ProtoId<AccessGroupPrototype> group)
{
SendMessage(new IdCardConsoleComponent.AccessGroupSelectedMessage(group)); // Starlight-edit
}
// Starlight-edit: End
}
}
Loading
Loading