Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
903 commits
Select commit Hold shift + click to select a range
09f1780
Clip the WindowTitle of FancyWindows, so close buttons don't get hidd…
cmorley191 Sep 11, 2025
8a4a6ec
Food Item Size Adjustment (#39203)
SlamBamActionman Sep 11, 2025
b9920cb
Automatic changelog update
PJBot Sep 11, 2025
b3e06de
They're milk jugs, not milk cartons!
SlamBamActionman Sep 11, 2025
2b1ae77
Update Content.Shared/SprayPainter/SharedSprayPainterSystem.cs
CrazyPhantom779 Sep 11, 2025
ee68404
Update Content.Shared/SprayPainter/SharedSprayPainterSystem.cs
CrazyPhantom779 Sep 11, 2025
9519eb5
Fix Linter errors (#40283)
SlamBamActionman Sep 11, 2025
1f1c719
Remove unused BulletTennis (#40285)
ScarKy0 Sep 11, 2025
690b4d1
Merge remote-tracking branch 'upstream-origin/master' into fork/iaada…
SlamBamActionman Sep 11, 2025
ec32c49
Update Content.Shared/SprayPainter/SharedSprayPainterSystem.cs
CrazyPhantom779 Sep 11, 2025
ff3f0c6
Reorganize and refactor drinks yml (#39221)
SlamBamActionman Sep 11, 2025
77eca4a
Automatic changelog update
PJBot Sep 11, 2025
fbf65b7
Make vending machine restocks predicted (and its sound not spammable)…
perryprog Sep 11, 2025
9c044ea
Merge branch 'starlight-dev' into shotgun_resprites
JustAdler Sep 11, 2025
8ca6919
=
JustAdler Sep 11, 2025
7396d9e
Added SmartFridge circuitboards (#39879)
luegamer Sep 11, 2025
bb97097
Automatic changelog update
PJBot Sep 11, 2025
1245487
storage and inventory toolshed commands (#39046)
UpAndLeaves Sep 11, 2025
d8c55ae
Automatic changelog update
PJBot Sep 11, 2025
a5fd106
terror prince
Rinary1 Sep 11, 2025
4703fff
spiderlings actually run
Rinary1 Sep 11, 2025
48ca3ba
oops
Rinary1 Sep 11, 2025
3688785
maybe jumping
Rinary1 Sep 11, 2025
321331e
move all the radio components and system to Shared (#40293)
slarticodefast Sep 11, 2025
8cc1b29
Clake frag round fix (#40294)
Archeonan Sep 12, 2025
49fb6fd
Fix for can't stop pulling when cuffed (#40233)
insoPL Sep 12, 2025
ab47b32
Update surgery.yml
Sep 12, 2025
2820882
Stop microwaving! (#40132)
TheShuEd Sep 12, 2025
47631dd
- add: (Barratry) Ticket Machine to Salvage
CawsForConcern Sep 12, 2025
17e9de1
Updated Cat Ears
CorruptOmega Sep 12, 2025
14683a6
Add 3 more Reptilian Emotes
CorruptOmega Sep 13, 2025
fa75ed2
Slight Adjustment
CorruptOmega Sep 13, 2025
a441f1b
Oop. One more fix.
CorruptOmega Sep 13, 2025
32d9f0d
Update attributions.yml
CorruptOmega Sep 13, 2025
784acc2
Update attributions.yml
CorruptOmega Sep 13, 2025
add9baf
Add White Cat Ears Valid
CorruptOmega Sep 13, 2025
1ccc990
New Smite - White Cat Ears to complement the Black Cat Ears smite
CorruptOmega Sep 13, 2025
1162efb
Merge branch 'Trinket-Cat-Ears-Price-Inflation' of https://github.com…
CorruptOmega Sep 13, 2025
3f9aa8a
Patch
ShadesMars Sep 13, 2025
e6225c3
Uneeded.
ShadesMars Sep 13, 2025
d9c24b3
De-enumify humanoid species skin colours (#39175)
sowelipililimute Sep 14, 2025
1826e2d
- remove: Mail Technician no longer requires 5 hours of Cargo Departm…
CawsForConcern Sep 14, 2025
b4bd251
Update changelog for PR #1624 [skip ci]
github-actions[bot] Sep 14, 2025
6f9d86c
Merge pull request #1621 from CawsForConcern/MailTechHours
ShadesMars Sep 14, 2025
4e18689
Update changelog for PR #1621 [skip ci]
github-actions[bot] Sep 14, 2025
a1e0eb3
Merge branch 'starlight-dev' into upstream-merge
walksanatora Sep 14, 2025
db177a8
Merge branch 'starlight-dev' into thaven
walksanatora Sep 14, 2025
f5902f6
Merge branch 'starlight-dev' into lobbyart2
ShadesMars Sep 14, 2025
9351a6e
Merge pull request #1609 from CawsForConcern/BarratryTicketMachine
ShadesMars Sep 14, 2025
bcfc7ee
Update changelog for PR #1609 [skip ci]
github-actions[bot] Sep 14, 2025
e333a3e
Merge pull request #1598 from Conflee/lobbyart2
ShadesMars Sep 14, 2025
e15b9dc
Apply suggestion from @FoxxoTrystan
CorruptOmega Sep 14, 2025
d30e20b
Update changelog for PR #1598 [skip ci]
github-actions[bot] Sep 14, 2025
531ffff
Merge pull request #1184 from JustAdler/reflect
ShadesMars Sep 14, 2025
f0f6d5b
fix for event-based weightless
walksanatora Sep 14, 2025
3c0992b
Merge pull request #1185 from JustAdler/soviet_stuff
ShadesMars Sep 14, 2025
f0cab99
Update changelog for PR #1185 [skip ci]
github-actions[bot] Sep 14, 2025
888acc4
A thousand _Impstation files cried out and were extinguished in _Star…
walksanatora Sep 14, 2025
ec799d0
Merge pull request #1613 from CorruptOmega/Trinket-Cat-Ears-Price-Inf…
ShadesMars Sep 14, 2025
7c9fa7b
Update changelog for PR #1613 [skip ci]
github-actions[bot] Sep 14, 2025
b9ddcc9
Revert "Can't crawl over counters (#40099)"
VasilisThePikachu Sep 14, 2025
ceb5593
Merge pull request #1614 from CorruptOmega/Lizard-Emotes
ShadesMars Sep 14, 2025
aa39953
Update changelog for PR #1614 [skip ci]
github-actions[bot] Sep 14, 2025
a38c6c1
Revert "Add heat distortion shader for hot gases" (#40352)
slarticodefast Sep 14, 2025
9e204c3
Vulpkanin Color Clamping (#40348)
ScarKy0 Sep 14, 2025
d8e8182
[STAGING/HOTFIX] Butcher entities in containers. (#40299)
Princess-Cheeseballs Sep 14, 2025
08c913b
Merge pull request #1620 from FoxxoTrystan/gorilla-patch
ShadesMars Sep 14, 2025
fa6489a
Update changelog for PR #1620 [skip ci]
github-actions[bot] Sep 14, 2025
6d8d782
Prism update 2
MaxAlpine Sep 14, 2025
bf61f93
move cooldown to component
Rinary1 Sep 14, 2025
8d3c389
base
Arkanic Sep 14, 2025
1fda697
fix resolve issues
Rinary1 Sep 14, 2025
8ebb6a2
l
fqqf Sep 15, 2025
c42ecc5
l
fqqf Sep 15, 2025
ea424ed
fix railroading crash
Arkanic Sep 15, 2025
d218900
Abductors and minor antag guidebook updates
APOCAMANDER Sep 15, 2025
9bdc4bb
dox clone reorganization
APOCAMANDER Sep 15, 2025
ad2a5df
dox clone clarity
APOCAMANDER Sep 15, 2025
ab5b8f7
spelling mistake
APOCAMANDER Sep 15, 2025
dee31cf
test
Huaqas Sep 15, 2025
b6f40ff
Merge branch 'ss14Starlight:Starlight' into Spray-Painter-Recharge-Fi…
CrazyPhantom779 Sep 15, 2025
78f4889
Merge branch 'starlight-dev' into Spray-Painter-Recharge-Fix(Actual)
CrazyPhantom779 Sep 15, 2025
cab3792
First big chunk.
Huaqas Sep 15, 2025
9b5f9c3
[Hotfix] Remove pull-escape trick (#40368)
Errant-4 Sep 15, 2025
98514a5
All the hardsuits
Huaqas Sep 15, 2025
b178072
resomi are chickens
Huaqas Sep 15, 2025
7c521a1
Get rid of that awful cry.
Huaqas Sep 15, 2025
06033b5
Custom Resomi Typing Indicator
Huaqas Sep 15, 2025
72dc465
Merge branch 'starlight-dev' into Resomi-Updates
Huaqas Sep 15, 2025
b1f8040
fixing errors
Huaqas Sep 15, 2025
06982a0
Made Resomi sounds MONO
Huaqas Sep 15, 2025
7c3aa4b
Merge branch 'Resomi-Updates' of https://github.com/Huaqas/space-stat…
Huaqas Sep 15, 2025
9bc4043
Add speech verb, and typing indicator component.
Huaqas Sep 15, 2025
3884750
Fix missing FTL and Avali undergarments
Huaqas Sep 15, 2025
6186395
Merge pull request #1629 from Arkanic/rr-card-fix
ShadesMars Sep 15, 2025
c701088
Update changelog for PR #1629 [skip ci]
github-actions[bot] Sep 15, 2025
5ca9600
Merge pull request #1630 from APOCAMANDER/Guidebook_upkeep
ShadesMars Sep 15, 2025
c27182e
Update changelog for PR #1630 [skip ci]
github-actions[bot] Sep 15, 2025
c943a50
Merge pull request #1633 from Huaqas/Resomi-Updates
ShadesMars Sep 15, 2025
95559c9
Update changelog for PR #1633 [skip ci]
github-actions[bot] Sep 15, 2025
9c259c6
Merge pull request #1628 from fskx/15-09-2025-lynatik
StarlightHost Sep 15, 2025
d8c654c
Update changelog for PR #1628 [skip ci]
github-actions[bot] Sep 15, 2025
6d80fbd
A Real Proto-5x Change
PubliclyExecutedPig Sep 15, 2025
bb9e6b0
Merge branch 'starlight-dev' into upstream-merge
walksanatora Sep 15, 2025
7d81cdc
Merge pull request #1600 from CrazyPhantom779/Spray-Painter-Recharge-…
StarlightHost Sep 15, 2025
ed27534
Update changelog for PR #1600 [skip ci]
github-actions[bot] Sep 15, 2025
32dcea0
Update Resources/Prototypes/_StarLight/Entities/Mobs/NPCs/terror_spid…
Rinary1 Sep 15, 2025
2e6779c
Update Resources/Prototypes/_StarLight/Entities/Objects/Weapons/Guns/…
Rinary1 Sep 15, 2025
d0834e9
Merge pull request #1573 from ss14Starlight/terror-spiders-update
StarlightHost Sep 15, 2025
dbddbd9
Update changelog for PR #1573 [skip ci]
github-actions[bot] Sep 15, 2025
ce52799
fix
StarlightHost Sep 15, 2025
718a7c4
Merge pull request #1636 from PubliclyExecutedPig/actual-balance
StarlightHost Sep 15, 2025
1c05e97
Update changelog for PR #1636 [skip ci]
github-actions[bot] Sep 15, 2025
59e6e56
merge wizden/stable into upstream-merge (your taking too long)
walksanatora Sep 15, 2025
701349a
Merge branch 'starlight-dev' into upstream-merge
walksanatora Sep 15, 2025
5e60b3e
make it so jumping works on operator instead of hardcode
Rinary1 Sep 15, 2025
cf54f92
Merge branch 'starlight-dev' into id-replace-railroad
Arkanic Sep 15, 2025
c12ca4b
add operator to combat compounds
Rinary1 Sep 15, 2025
2dd4bb8
Apply suggestions from code review
Rinary1 Sep 15, 2025
324fa76
Update heads.yml
Sep 15, 2025
91e7938
search if not found
Arkanic Sep 15, 2025
cb7349a
init
Rinary1 Sep 15, 2025
0399e8b
Fix compile errors
walksanatora Sep 15, 2025
ec5781f
Add Avali & Resomi blood to artifact blood trigger
knapdragon Sep 15, 2025
b1d0510
Adding Flatpack for Reflector
CorruptOmega Sep 15, 2025
24a7d22
Set Avali/Resomi blood parent to AmmoniaBlood
knapdragon Sep 15, 2025
c09be3d
Adding new Regeant
CorruptOmega Sep 15, 2025
50060c8
Updated Dead State. Whoops
CorruptOmega Sep 15, 2025
89044c4
Update engineering.yml
CorruptOmega Sep 15, 2025
6471b4a
Add sap to artifact blood trigger
knapdragon Sep 15, 2025
d62cb7f
RP Icons
Conflee Sep 15, 2025
b2bcab8
Added Necrosol Requirement - Work for that dead radiation healing you…
CorruptOmega Sep 15, 2025
ba27ed2
RP Icons and Guidebook Updates
Conflee Sep 16, 2025
addf3c0
Replaced the vanishing detective spawnpoint
MaxAlpine Sep 16, 2025
86e14d8
fix
Conflee Sep 16, 2025
8f3fa07
fix
Conflee Sep 16, 2025
04b3955
Attempting to fix build error by turning it off and back on again
MaxAlpine Sep 16, 2025
a711469
appease yaml linter non-vulp
walksanatora Sep 16, 2025
071a74c
vulp 1984
walksanatora Sep 16, 2025
3b5fcff
re-adds yip. also makes their emote sounds less dog like. yes they ar…
walksanatora Sep 16, 2025
da29bff
fix speech path.
walksanatora Sep 16, 2025
cb5bdb3
the death of mime baugette
walksanatora Sep 16, 2025
ba33932
Not S&P approved
walksanatora Sep 16, 2025
5943926
add: UraniumWindowDiagonal and ReinforcedUraniumWindowDiagonal
0xRai Sep 16, 2025
c1e9357
Changing name to Chronexaline - Another Star Trek reference
CorruptOmega Sep 16, 2025
eec063a
Changing name to Chronexaline - Another Star Trek reference
CorruptOmega Sep 16, 2025
f4b0620
Changing name to Chronexaline - Matching other Star Trek references
CorruptOmega Sep 16, 2025
ba607de
Update Resources/Prototypes/XenoArch/triggers.yml
knapdragon Sep 16, 2025
f3068ba
Fix howling
DoubleHypercube Sep 16, 2025
62a922d
Merge pull request #1578 from stickycheZ101/Ripperdoc-arm
StarlightHost Sep 16, 2025
49c3f02
Update changelog for PR #1578 [skip ci]
github-actions[bot] Sep 16, 2025
dde429a
fix containers
walksanatora Sep 16, 2025
196a000
Fix borg radio TTS.
StarlightHost Sep 16, 2025
827fc32
Merge pull request #1648 from ss14Starlight/fixs/borg-radio
StarlightHost Sep 16, 2025
d525787
Merge branch 'starlight-dev' into upstream-merge
StarlightHost Sep 16, 2025
a927540
Update changelog for PR #1648 [skip ci]
github-actions[bot] Sep 16, 2025
c671b75
Merge pull request #1525 from walksanatora/upstream-merge
StarlightHost Sep 16, 2025
aa2b8a2
Update changelog for PR #1525 [skip ci]
github-actions[bot] Sep 16, 2025
3056261
fix
StarlightHost Sep 16, 2025
11a0026
A diona can restore its body in 5 minutes instead of 10.
StarlightHost Sep 16, 2025
d4a99a9
The liver of vox now absorbs much more damage. When removed from the …
StarlightHost Sep 16, 2025
d2889e8
access add/remove
Arkanic Sep 16, 2025
007dd08
Vox can now regenerate up to 25 damage instead of the base 20.
StarlightHost Sep 16, 2025
b9cedd8
Vox claws now deal 6 damage instead of 5.
StarlightHost Sep 16, 2025
4f7ae38
Merge branch 'starlight-dev' into thaven
walksanatora Sep 16, 2025
f310627
guidebook
StarlightHost Sep 16, 2025
3eb8dc4
Cyclorites are now 10% slower instead of 15%.
StarlightHost Sep 16, 2025
0704aaf
don't spawn card if there is no accesses to grant
Arkanic Sep 16, 2025
0da9f4e
Merge branch 'starlight-dev' into artiAmmoniaBloodFix
knapdragon Sep 16, 2025
1c25d41
Dwarves now go into crit at 110 damage and die at 220.
StarlightHost Sep 16, 2025
f3e1e68
Revert AmmoniaBlood
knapdragon Sep 16, 2025
0803351
why did this not occur ON THE ACTUAL PR
walksanatora Sep 16, 2025
7558a84
Arachnids are no longer slowed down when walking on webs.
StarlightHost Sep 16, 2025
7ceba7f
review fix
StarlightHost Sep 16, 2025
f728fad
fix
StarlightHost Sep 16, 2025
cae635c
Merge pull request #1650 from ss14Starlight/rebalance/species
StarlightHost Sep 16, 2025
eba2f2f
Update changelog for PR #1650 [skip ci]
github-actions[bot] Sep 16, 2025
fb7d4d9
Merge pull request #1649 from walksanatora/fix-upstream-rsi
ShadesMars Sep 16, 2025
1f04705
Merge branch 'starlight-dev' into thaven
ShadesMars Sep 16, 2025
d4b31fd
Merge pull request #1627 from Arkanic/id-replace-railroad
StarlightHost Sep 16, 2025
155d5a9
Update changelog for PR #1627 [skip ci]
github-actions[bot] Sep 16, 2025
683136f
Guidebook Touchup
Conflee Sep 17, 2025
9d6ee88
brings xenoborgis back into the fold by making them explodable.
walksanatora Sep 17, 2025
108c3f1
and make it appear right
walksanatora Sep 17, 2025
1c8c6e3
Merge branch 'starlight-dev' into xenoborgi-into-the-fold
walksanatora Sep 17, 2025
6c58a74
displacements, wagging, scream, accent
Arkanic Sep 17, 2025
701e321
fix hardsuits & hair, fix eyes
Arkanic Sep 17, 2025
0338b6f
use sl markings
Arkanic Sep 17, 2025
76d25d3
missed one
Arkanic Sep 17, 2025
b9cc99a
Merge branch 'starlight-dev' into chemicals-upd
Rinary1 Sep 17, 2025
327bb30
add missing emotes
Arkanic Sep 17, 2025
69fb638
sl comment
Arkanic Sep 17, 2025
ab71ebb
metashield wording tweak
Conflee Sep 17, 2025
013bd8c
Merge pull request #1657 from Arkanic/vulp-fixes-pro
ShadesMars Sep 17, 2025
e937b5d
Merge pull request #1646 from AutumnalModding/whoopsies
ShadesMars Sep 17, 2025
3a50282
Merge branch 'starlight-dev' into thaven
ShadesMars Sep 17, 2025
70b998d
Merge pull request #1643 from Conflee/RP_Icon
ShadesMars Sep 17, 2025
c8744c9
Update changelog for PR #1643 [skip ci]
github-actions[bot] Sep 17, 2025
2fd28c5
Merge branch 'starlight-dev' into xenoborgi-into-the-fold
ShadesMars Sep 17, 2025
fbf2414
Merge pull request #1652 from Conflee/content_warnings
ShadesMars Sep 17, 2025
59fc985
Update changelog for PR #1652 [skip ci]
github-actions[bot] Sep 17, 2025
b4a1bf9
Merge pull request #1642 from CorruptOmega/Cryo-Radiation-Meds
ShadesMars Sep 17, 2025
d9e878b
Merge pull request #1640 from CorruptOmega/Reflector-Flatpacks
ShadesMars Sep 17, 2025
f3a5fff
Update changelog for PR #1642 [skip ci]
github-actions[bot] Sep 17, 2025
369d3a6
Update changelog for PR #1640 [skip ci]
github-actions[bot] Sep 17, 2025
569e478
Merge pull request #1591 from CorruptOmega/Small-Sprite-Fix
ShadesMars Sep 17, 2025
21b0611
Merge pull request #1638 from ss14Starlight/fix-separators
ShadesMars Sep 17, 2025
66afd3b
Merge pull request #1626 from MaxAlpine/starlight-dev
ShadesMars Sep 17, 2025
9897570
Merge branch 'starlight-dev' into yaml-types
ShadesMars Sep 17, 2025
7ddc9cd
Merge pull request #1637 from ss14Starlight/terror-spiders-tier-3
ShadesMars Sep 17, 2025
f6dc960
Merge pull request #1653 from walksanatora/xenoborgi-into-the-fold
ShadesMars Sep 17, 2025
a5f3fbd
Update changelog for PR #1637 [skip ci]
github-actions[bot] Sep 17, 2025
ca15d45
Update changelog for PR #1653 [skip ci]
github-actions[bot] Sep 17, 2025
0a8e102
Merge pull request #1639 from knapdragon/artiAmmoniaBloodFix
ShadesMars Sep 17, 2025
8752600
Merge pull request #1645 from 0xRai/window-direct-fix
ShadesMars Sep 17, 2025
e137c63
Revert "Terror spiders tier 3"
ShadesMars Sep 17, 2025
bc2abe3
Merge pull request #1658 from ss14Starlight/revert-1637-terror-spider…
ShadesMars Sep 17, 2025
20b1159
Merge branch 'starlight-dev' into yaml-types
ShadesMars Sep 17, 2025
183954e
Revert "Revert "Terror spiders tier 3""
ShadesMars Sep 17, 2025
e2be2c6
Update changelog for PR #1645 [skip ci]
github-actions[bot] Sep 17, 2025
43ed188
Merge pull request #1659 from ss14Starlight/revert-1658-revert-1637-t…
ShadesMars Sep 17, 2025
56395c7
Merge branch 'starlight-dev' into yaml-types
ShadesMars Sep 17, 2025
530ebd6
Merge pull request #1356 from princess-gurchi/abyss-expansion
ShadesMars Sep 17, 2025
7d9da42
Merge pull request #1355 from ss14Starlight/chemicals-upd
ShadesMars Sep 17, 2025
acb6330
Update changelog for PR #1356 [skip ci]
github-actions[bot] Sep 17, 2025
148f870
Merge branch 'starlight-dev' into Security-Shuttle
ShadesMars Sep 17, 2025
8e9c301
Merge branch 'starlight-dev' into VendingStockBuff
ShadesMars Sep 17, 2025
25dae2d
Update changelog for PR #1355 [skip ci]
github-actions[bot] Sep 17, 2025
84b7989
Merge pull request #1292 from neomoth/crayon-rotation-ghost
ShadesMars Sep 17, 2025
e0e8973
Merge pull request #1348 from KillerTheFlareon/Security-Shuttle
ShadesMars Sep 17, 2025
bd004ef
fixed surgery so it can now actually be used.
walksanatora Sep 17, 2025
6a5949e
Merge pull request #1234 from RHSvenson/FormsAndFields
ShadesMars Sep 17, 2025
a8426cf
Merge pull request #1186 from JustAdler/shotgun_resprites
ShadesMars Sep 17, 2025
61ff715
Merge pull request #1296 from Conflee/VendingStockBuff
ShadesMars Sep 17, 2025
731f9ae
Merge pull request #1596 from ss14Starlight/yaml-types
ShadesMars Sep 17, 2025
72b9e3b
Merge branch 'starlight-dev' into improv-ammo-rework
ShadesMars Sep 17, 2025
5b9f1a6
Merge pull request #1472 from CorruptOmega/Document-Printer
ShadesMars Sep 17, 2025
8c5a73b
Merge branch 'starlight-dev' into thaven
ShadesMars Sep 17, 2025
0e3fb3e
Update changelog for PR #1234 [skip ci]
github-actions[bot] Sep 17, 2025
4b7dd63
Merge pull request #1370 from PubliclyExecutedPig/Spacing-buff
ShadesMars Sep 17, 2025
a6eae9f
Merge pull request #1427 from walksanatora/tower-of-babble
ShadesMars Sep 17, 2025
b4897f8
Update changelog for PR #1186 [skip ci]
github-actions[bot] Sep 17, 2025
5efc7ba
Update changelog for PR #1296 [skip ci]
github-actions[bot] Sep 17, 2025
b0b103d
Update changelog for PR #1370 [skip ci]
github-actions[bot] Sep 17, 2025
92ccf2f
Merge pull request #1660 from walksanatora/surgery-fix
ShadesMars Sep 17, 2025
01b391f
Update changelog for PR #1660 [skip ci]
github-actions[bot] Sep 17, 2025
933cad8
Merge pull request #1170 from stickycheZ101/improv-ammo-rework
ShadesMars Sep 17, 2025
34a36c1
Update changelog for PR #1170 [skip ci]
github-actions[bot] Sep 17, 2025
f3ab3c2
Merge pull request #1440 from walksanatora/thaven
ShadesMars Sep 17, 2025
096546e
Update changelog for PR #1440 [skip ci]
github-actions[bot] Sep 17, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@

/Content.*/Forensics/ @ficcialfaint

/Content.*/Trigger/ @slarticodefast

/Content.*/Stunnable/ @Princess-Cheeseballs
/Content.*/Nutrition/ @Princess-Cheeseballs

# SKREEEE
/Content.*.Database/ @PJB3005 @DrSmugleaf
/Content.Shared.Database/Log*.cs @PJB3005 @DrSmugleaf @crazybrain23
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
run: dotnet build Content.Packaging --configuration Release --no-restore /m

- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform linux-x64 --platform osx-x64 --platform linux-arm64
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64

- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
run: dotnet build Content.Packaging -c Release --no-restore /m

- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform linux-x64 --platform osx-x64 --platform linux-arm64
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64

- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
run: dotnet build Content.Packaging --configuration Release --no-restore /m

- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform linux-x64 --platform osx-x64 --platform linux-arm64
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64

- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
575 changes: 575 additions & 0 deletions .vscode/settings.json

Large diffs are not rendered by default.

38 changes: 18 additions & 20 deletions BuildChecker/git_helper.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
#!/usr/bin/env python3
# Installs git hooks, updates them, updates submodules, that kind of thing.
"""
Installs git hooks, updates them, updates submodules, that kind of thing.
"""

import subprocess
import sys
import os
import shutil
import subprocess
import sys
import time
from pathlib import Path
from typing import List

SOLUTION_PATH = Path("..") / "SpaceStation14.sln"
# If this doesn't match the saved version we overwrite them all.
CURRENT_HOOKS_VERSION = "2"
CURRENT_HOOKS_VERSION = "3"
QUIET = len(sys.argv) == 2 and sys.argv[1] == "--quiet"


Expand All @@ -25,12 +27,10 @@ def run_command(command: List[str], capture: bool = False) -> subprocess.Complet

sys.stdout.flush()

completed = None

if capture:
completed = subprocess.run(command, cwd="..", stdout=subprocess.PIPE)
completed = subprocess.run(command, stdout=subprocess.PIPE, text=True)
else:
completed = subprocess.run(command, cwd="..")
completed = subprocess.run(command)

if completed.returncode != 0:
print("Error: command exited with code {}!".format(completed.returncode))
Expand All @@ -43,7 +43,7 @@ def update_submodules():
Updates all submodules.
"""

if ('GITHUB_ACTIONS' in os.environ):
if 'GITHUB_ACTIONS' in os.environ:
return

if os.path.isfile("DISABLE_SUBMODULE_AUTOUPDATE"):
Expand Down Expand Up @@ -76,22 +76,21 @@ def install_hooks():
print("No hooks change detected.")
return

with open("INSTALLED_HOOKS_VERSION", "w") as f:
f.write(CURRENT_HOOKS_VERSION)

print("Hooks need updating.")

hooks_target_dir = Path("..")/".git"/"hooks"
hooks_target_dir = Path(run_command(["git", "rev-parse", "--git-path", "hooks"], True).stdout.strip())
hooks_source_dir = Path("hooks")

# Clear entire tree since we need to kill deleted files too.
for filename in os.listdir(str(hooks_target_dir)):
os.remove(str(hooks_target_dir/filename))
for filename in os.listdir(hooks_target_dir):
os.remove(hooks_target_dir / filename)

for filename in os.listdir(str(hooks_source_dir)):
for filename in os.listdir(hooks_source_dir):
print("Copying hook {}".format(filename))
shutil.copy2(str(hooks_source_dir/filename),
str(hooks_target_dir/filename))
shutil.copy2(hooks_source_dir / filename, hooks_target_dir / filename)

with open("INSTALLED_HOOKS_VERSION", "w") as f:
f.write(CURRENT_HOOKS_VERSION)


def reset_solution():
Expand All @@ -107,8 +106,7 @@ def reset_solution():

def check_for_zip_download():
# Check if .git exists,
cur_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if not os.path.isdir(os.path.join(cur_dir, ".git")):
if run_command(["git", "rev-parse"]).returncode != 0:
print("It appears that you downloaded this repository directly from GitHub. (Using the .zip download option) \n"
"When downloading straight from GitHub, it leaves out important information that git needs to function. "
"Such as information to download the engine or even the ability to even be able to create contributions. \n"
Expand Down
6 changes: 3 additions & 3 deletions BuildChecker/hooks/post-checkout
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/bin/bash

gitroot=`git rev-parse --show-toplevel`
gitroot=$(git rev-parse --show-toplevel)

cd "$gitroot/BuildChecker"
cd "$gitroot/BuildChecker" || exit

if [[ `uname` == MINGW* || `uname` == CYGWIN* ]]; then
if [[ $(uname) == MINGW* || $(uname) == CYGWIN* ]]; then
# Windows
py -3 git_helper.py --quiet
else
Expand Down
4 changes: 2 additions & 2 deletions BuildChecker/hooks/post-merge
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash

# Just call post-checkout since it does the same thing.
gitroot=`git rev-parse --show-toplevel`
bash "$gitroot/.git/hooks/post-checkout"
gitroot=$(git rev-parse --git-path hooks)
bash "$gitroot/post-checkout"
174 changes: 174 additions & 0 deletions Content.Benchmarks/DeltaPressureBenchmark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Diagnosers;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Atmos.Components;
using Content.Server.Atmos.EntitySystems;
using Content.Shared.Atmos.Components;
using Content.Shared.CCVar;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.Configuration;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;

namespace Content.Benchmarks;

/// <summary>
/// Spawns N number of entities with a <see cref="DeltaPressureComponent"/> and
/// simulates them for a number of ticks M.
/// </summary>
[Virtual]
[GcServer(true)]
//[MemoryDiagnoser]
//[ThreadingDiagnoser]
public class DeltaPressureBenchmark
{
/// <summary>
/// Number of entities (windows, really) to spawn with a <see cref="DeltaPressureComponent"/>.
/// </summary>
[Params(1, 10, 100, 1000, 5000, 10000, 50000, 100000)]
public int EntityCount;

/// <summary>
/// Number of entities that each parallel processing job will handle.
/// </summary>
// [Params(1, 10, 100, 1000, 5000, 10000)] For testing how multithreading parameters affect performance (THESE TESTS TAKE 16+ HOURS TO RUN)
[Params(10)]
public int BatchSize;

/// <summary>
/// Number of entities to process per iteration in the DeltaPressure
/// processing loop.
/// </summary>
// [Params(100, 1000, 5000, 10000, 50000)]
[Params(1000)]
public int EntitiesPerIteration;

private readonly EntProtoId _windowProtoId = "Window";
private readonly EntProtoId _wallProtoId = "WallPlastitaniumIndestructible";

private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private SharedMapSystem _map = default!;
private IRobustRandom _random = default!;
private IConfigurationManager _cvar = default!;
private ITileDefinitionManager _tileDefMan = default!;
private AtmosphereSystem _atmospereSystem = default!;

private Entity<GridAtmosphereComponent, GasTileOverlayComponent, MapGridComponent, TransformComponent>
_testEnt;

[GlobalSetup]
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup();
_pair = await PoolManager.GetServerClient();
var server = _pair.Server;

var mapdata = await _pair.CreateTestMap();

_entMan = server.ResolveDependency<IEntityManager>();
_map = _entMan.System<SharedMapSystem>();
_random = server.ResolveDependency<IRobustRandom>();
_cvar = server.ResolveDependency<IConfigurationManager>();
_tileDefMan = server.ResolveDependency<ITileDefinitionManager>();
_atmospereSystem = _entMan.System<AtmosphereSystem>();

_random.SetSeed(69420); // Randomness needs to be deterministic for benchmarking.

_cvar.SetCVar(CCVars.DeltaPressureParallelToProcessPerIteration, EntitiesPerIteration);
_cvar.SetCVar(CCVars.DeltaPressureParallelBatchSize, BatchSize);

var plating = _tileDefMan["Plating"].TileId;

/*
Basically, we want to have a 5-wide grid of tiles.
Edges are walled, and the length of the grid is determined by N + 2.
Windows should only touch the top and bottom walls, and each other.
*/

var length = EntityCount + 2; // ensures we can spawn exactly N windows between side walls
const int height = 5;

await server.WaitPost(() =>
{
// Fill required tiles (extend grid) with plating
for (var x = 0; x < length; x++)
{
for (var y = 0; y < height; y++)
{
_map.SetTile(mapdata.Grid, mapdata.Grid, new Vector2i(x, y), new Tile(plating));
}
}

// Spawn perimeter walls and windows row in the middle (y = 2)
const int midY = height / 2;
for (var x = 0; x < length; x++)
{
for (var y = 0; y < height; y++)
{
var coords = new EntityCoordinates(mapdata.Grid, x + 0.5f, y + 0.5f);

var isPerimeter = x == 0 || x == length - 1 || y == 0 || y == height - 1;
if (isPerimeter)
{
_entMan.SpawnEntity(_wallProtoId, coords);
continue;
}

// Spawn windows only on the middle row, spanning interior (excluding side walls)
if (y == midY)
{
_entMan.SpawnEntity(_windowProtoId, coords);
}
}
}
});

// Next we run the fixgridatmos command to ensure that we have some air on our grid.
// Wait a little bit as well.
// TODO: Unhardcode command magic string when fixgridatmos is an actual command we can ref and not just
// a stamp-on in AtmosphereSystem.
await _pair.WaitCommand("fixgridatmos " + mapdata.Grid.Owner, 1);

var uid = mapdata.Grid.Owner;
_testEnt = new Entity<GridAtmosphereComponent, GasTileOverlayComponent, MapGridComponent, TransformComponent>(
uid,
_entMan.GetComponent<GridAtmosphereComponent>(uid),
_entMan.GetComponent<GasTileOverlayComponent>(uid),
_entMan.GetComponent<MapGridComponent>(uid),
_entMan.GetComponent<TransformComponent>(uid));
}

[Benchmark]
public async Task PerformFullProcess()
{
await _pair.Server.WaitPost(() =>
{
while (!_atmospereSystem.RunProcessingStage(_testEnt, AtmosphereProcessingState.DeltaPressure)) { }
});
}

[Benchmark]
public async Task PerformSingleRunProcess()
{
await _pair.Server.WaitPost(() =>
{
_atmospereSystem.RunProcessingStage(_testEnt, AtmosphereProcessingState.DeltaPressure);
});
}

[GlobalCleanup]
public async Task CleanupAsync()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
}
2 changes: 1 addition & 1 deletion Content.Benchmarks/MapLoadBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public async Task Cleanup()
PoolManager.Shutdown();
}

public static readonly string[] MapsSource = { "Empty", "Saltern", "Box", "Bagel", "Dev", "CentComm", "Core", "TestTeg", "Packed", "Omega", "Reach", "Meta", "Marathon", "MeteorArena", "Fland", "Oasis", "Convex"};
public static string[] MapsSource { get; } = { "Empty", "Saltern", "Box", "Bagel", "Dev", "CentComm", "Core", "TestTeg", "Packed", "Omega", "Reach", "Meta", "Marathon", "MeteorArena", "Fland", "Oasis", "Convex"};

[ParamsSource(nameof(MapsSource))]
public string Map;
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Access/UI/AccessOverriderWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void SetAccessLevels(IPrototypeManager protoManager, List<ProtoId<AccessL

foreach (var access in accessLevels)
{
if (!protoManager.TryIndex(access, out var accessLevel))
if (!protoManager.Resolve(access, out var accessLevel))
{
continue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,21 +57,21 @@ private void ArrangeAccessControls()

foreach (var accessGroup in _accessGroups)
{
if (!_protoManager.TryIndex(accessGroup, out var accessGroupProto))
if (!_protoManager.Resolve(accessGroup, out var accessGroupProto))
continue;

_groupedAccessLevels.Add(accessGroupProto, new());
}

// Ensure that the 'general' access group is added to handle
// misc. access levels that aren't associated with any group
if (_protoManager.TryIndex(GeneralAccessGroup, out var generalAccessProto))
if (_protoManager.Resolve(GeneralAccessGroup, out var generalAccessProto))
_groupedAccessLevels.TryAdd(generalAccessProto, new());

// Assign known access levels with their associated groups
foreach (var accessLevel in _accessLevels)
{
if (!_protoManager.TryIndex(accessLevel, out var accessLevelProto))
if (!_protoManager.Resolve(accessLevel, out var accessLevelProto))
continue;

var assigned = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Content.Shared.CCVar;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.CrewManifest;
using Content.Shared.Roles;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.IdCardConsoleComponent;
Expand Down Expand Up @@ -74,7 +75,7 @@ protected override void UpdateState(BoundUserInterfaceState state)
_window?.UpdateState(castState);
}

public void SubmitData(string newFullName, string newJobTitle, List<ProtoId<AccessLevelPrototype>> newAccessList, string newJobPrototype)
public void SubmitData(string newFullName, string newJobTitle, List<ProtoId<AccessLevelPrototype>> newAccessList, ProtoId<JobPrototype> newJobPrototype)
{
if (newFullName.Length > _maxNameLength)
newFullName = newFullName[.._maxNameLength];
Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Access/UI/IdCardConsoleWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private void SelectJobPreset(OptionButton.ItemSelectedEventArgs args)

foreach (var group in job.AccessGroups)
{
if (!_prototypeManager.TryIndex(group, out AccessGroupPrototype? groupPrototype))
if (!_prototypeManager.Resolve(group, out AccessGroupPrototype? groupPrototype))
{
continue;
}
Expand Down
Loading
Loading