Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
c34a095
fix observers preventing shipsave (#2018)
re-silvered Jun 9, 2026
8dab7f1
Automated Changelog Update (#2001)
xemeraldwingx-dot Jun 9, 2026
e258199
Amber medical & CDETs fix (#2019)
FieryTech Jun 9, 2026
07663c9
Automated Changelog Update (#2014)
xemeraldwingx-dot Jun 9, 2026
471a8a8
Automated Changelog Update (#2018)
xemeraldwingx-dot Jun 9, 2026
f8952a2
Automated Changelog Update (#2019)
xemeraldwingx-dot Jun 9, 2026
6dced2b
Update CCVars.Game.cs
fenndragon Jun 9, 2026
a326f9c
Adds Einalia plushie and neccessary requirements (#2024)
CaptainComedii Jun 9, 2026
d592d33
Update core.yml (#2023)
Mspaintwizard Jun 9, 2026
7a7b9c7
Automated Changelog Update (#2024)
xemeraldwingx-dot Jun 9, 2026
dc8ee42
Breaching Hammer Prying Fix + Sounds (#2022)
Fardoche0 Jun 9, 2026
11166c7
Automated Changelog Update (#2022)
xemeraldwingx-dot Jun 9, 2026
8993d0f
Devour action refactor (#2025)
re-silvered Jun 12, 2026
79d86fe
feat: admin panel adjustments (#2026)
re-silvered Jun 12, 2026
d85ae11
Bionic Spinarette Fix and Trait Merge (#2027)
Fardoche0 Jun 12, 2026
ddbad67
Make natural lubrican last longer (#2028)
IngvarJackal Jun 12, 2026
2022042
Automated Changelog Update (#2027)
xemeraldwingx-dot Jun 12, 2026
da5ea5b
Added AI Shunt Receiver (#2029)
Typheus Jun 12, 2026
46a7871
small fixes to windbreaker, dynamoxine, holobarrier and Synthetic tra…
Vontens Jun 12, 2026
3224bce
Ajout de PoolTestLogHandler séparément (#2032)
Fardoche0 Jun 12, 2026
c2247c4
Differentiate PDA vibrations (#2034)
re-silvered Jun 12, 2026
7d68245
remove invalid configurators (#2035)
re-silvered Jun 12, 2026
a732772
fix: various recipe fixes. (#2036)
re-silvered Jun 12, 2026
b40590e
Plumbing poking (#2038)
TrylobyteWasTaken Jun 12, 2026
49e53a3
Rambler retexture (#2039)
Iisazel Jun 12, 2026
ef77fd4
feat: Cleanup round-critical items during cc intermission period (#2040)
re-silvered Jun 12, 2026
48c64b0
Attempts to fix nanites (#2042)
Iisazel Jun 12, 2026
2ac360b
Gashaponsition (#2044)
MothHours Jun 12, 2026
07a2173
Add FTL-less shuttle consoles (#2050)
DoubleHypercube Jun 12, 2026
d3f15df
Update to Hardlight core station; 3.2 (#2051)
Mspaintwizard Jun 12, 2026
a1fcef5
Cybersun faction clothing (First pass) (#2052)
CaptainComedii Jun 12, 2026
2bc7ac8
dragon breath (#2054)
fenndragon Jun 12, 2026
fad77e3
Automated Changelog Update (#2029)
xemeraldwingx-dot Jun 12, 2026
f30fe86
Adds cuffs and folder to disabler and investigation modules (#2048)
Slatebreaker Jun 12, 2026
fd4561c
Automated Changelog Update (#2030)
xemeraldwingx-dot Jun 12, 2026
217d225
Add Khionu to AEGIS faction list (#2045)
khionu Jun 12, 2026
f0a8d87
Automated Changelog Update (#2034)
xemeraldwingx-dot Jun 12, 2026
0617532
fix: nerf tintreach/shockmaul damage (#2041)
re-silvered Jun 12, 2026
829581e
Automated Changelog Update (#2036)
xemeraldwingx-dot Jun 12, 2026
2a55495
Automated Changelog Update (#2038)
xemeraldwingx-dot Jun 12, 2026
d770f3e
Automated Changelog Update (#2039)
xemeraldwingx-dot Jun 12, 2026
06b00d9
Automated Changelog Update (#2040)
xemeraldwingx-dot Jun 12, 2026
be1ad2e
Automated Changelog Update (#2042)
xemeraldwingx-dot Jun 12, 2026
ef617ee
Automated Changelog Update (#2044)
xemeraldwingx-dot Jun 12, 2026
5fa79cc
Automated Changelog Update (#2050)
xemeraldwingx-dot Jun 12, 2026
2f0d668
Automated Changelog Update (#2052)
xemeraldwingx-dot Jun 12, 2026
58a35d8
Automated Changelog Update (#2054)
xemeraldwingx-dot Jun 12, 2026
8adbc39
Automated Changelog Update (#2041)
xemeraldwingx-dot Jun 12, 2026
d9c506e
remove deathrattle from exped npc (#2055)
re-silvered Jun 15, 2026
5a886f8
CC Fax discord webhook forwarding. (#2057)
re-silvered Jun 15, 2026
8f49b7d
Cyborg/Quadborg ID changes (#2058)
Slatebreaker Jun 15, 2026
ea1dc33
Automated Changelog Update (#2055)
xemeraldwingx-dot Jun 15, 2026
b0b837c
Update core.yml (#2059)
Mspaintwizard Jun 15, 2026
e0a539c
argo nerf (#2060)
Iisazel Jun 15, 2026
76f8390
Modified AI Assembly construction finish event to change aiBrain name…
Typheus Jun 15, 2026
f3da0da
The UNITY menace (#2064)
FieryTech Jun 15, 2026
8bbb71a
Modified AI comms so that an AI built off-station no longer has acces…
Typheus Jun 15, 2026
833edf4
Automated Changelog Update (#2058)
xemeraldwingx-dot Jun 15, 2026
8586f79
Add events heat and quiet before storm event (#2066)
IngvarJackal Jun 15, 2026
bb27ae3
feat(accent): add scandinavian accent (#2068)
Khaomi Jun 15, 2026
3aabbbe
feat: add OOC slow mode admin command (#2070)
okdamsam Jun 15, 2026
e4a5f4f
Automated Changelog Update (#2060)
xemeraldwingx-dot Jun 15, 2026
44aa26a
Automated Changelog Update (#2063)
xemeraldwingx-dot Jun 15, 2026
a35cd8f
Automated Changelog Update (#2064)
xemeraldwingx-dot Jun 15, 2026
e8b6f39
Automated Changelog Update (#2065)
xemeraldwingx-dot Jun 15, 2026
84e059b
Automated Changelog Update (#2066)
xemeraldwingx-dot Jun 16, 2026
8044f51
Automated Changelog Update (#2068)
xemeraldwingx-dot Jun 16, 2026
c22f643
feat(reagents): refactor reagent spoil code + add addictine curing ch…
re-silvered Jun 16, 2026
a88472e
Automated Changelog Update (#2070)
xemeraldwingx-dot Jun 16, 2026
87d75f4
Automated Changelog Update (#2072)
xemeraldwingx-dot Jun 16, 2026
2b3a52a
eto bleh (#2073)
re-silvered Jun 16, 2026
2a315ae
Brighteye Returns (#2074)
ShadesMars Jun 16, 2026
ff256b7
Automated Changelog Update (#2074)
xemeraldwingx-dot Jun 16, 2026
174afa8
Vent Hordes (#43047) (#2075)
fenndragon Jun 16, 2026
f6f41b7
Port Goob(/Wizden) HTN Fixes (#1810) (#530) (#2076)
Hammeredmantis Jun 16, 2026
7f396af
Automated Changelog Update (#2075)
xemeraldwingx-dot Jun 16, 2026
e5f830f
Automated Changelog Update (#2076)
xemeraldwingx-dot Jun 16, 2026
86406ee
fix for a fix for a fix (#2078)
re-silvered Jun 16, 2026
b2ad7d1
Update events.yml
fenndragon Jun 16, 2026
d545379
Update events.yml
fenndragon Jun 16, 2026
4e69b96
fix
fenndragon Jun 16, 2026
b0ce272
Fix/ai shuttle control eye movement (#2061)
Typheus Jun 16, 2026
6c65a72
Respiron, a universally breathable gas (#3636) (#2077)
Hammeredmantis Jun 16, 2026
b194250
Automated Changelog Update (#2061)
xemeraldwingx-dot Jun 16, 2026
74ce3bd
Adds Respiron Canisters to the Gameplay Loop (#755) (#2079)
Hammeredmantis Jun 16, 2026
1288b61
Repairs broken AI Eye after FTL is complete. (#2081)
Typheus Jun 16, 2026
f471f58
Ports: Shuttle (New) DBI Stronghold (Frontier 4294, 4364, 4385) (#762…
Hammeredmantis Jun 16, 2026
5b2dacc
Add computer sound effects and ambience collections (#2084)
Hammeredmantis Jun 16, 2026
39fa140
Made respiron better so avalis don't choke out (#797) (#2080)
Hammeredmantis Jun 16, 2026
e39392f
Automated Changelog Update (#2081)
xemeraldwingx-dot Jun 16, 2026
d8edf41
fixes to audio and events
fenndragon Jun 16, 2026
b4ff5b2
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 16, 2026
8aff692
new sprites
fenndragon Jun 17, 2026
0f61987
Update RuleC0.xml
fenndragon Jun 18, 2026
57d0c5b
Update RuleC0.xml
fenndragon Jun 18, 2026
eb3790c
Bluespace storage (#2089)
Iisazel Jun 18, 2026
319f0c6
Automated Changelog Update (#2089)
xemeraldwingx-dot Jun 18, 2026
7ce00e0
bag folding (#2100)
fenndragon Jun 18, 2026
cf6b5ca
Automated Changelog Update (#2100)
xemeraldwingx-dot Jun 18, 2026
82165d9
Fixes (#2087)
ShadesMars Jun 18, 2026
4d828fc
Tradeband (#2086)
ScolarVisari Jun 18, 2026
b7d742d
Automated Changelog Update (#2087)
xemeraldwingx-dot Jun 18, 2026
50558da
Automated Changelog Update (#2086)
xemeraldwingx-dot Jun 18, 2026
6fcdacb
make figurines saveable (#2091)
Iisazel Jun 18, 2026
e0858c9
Added addressed telepathy, and gave it to Mantis (#2092)
Notarin Jun 18, 2026
58f7cd6
Update core.yml (#2101)
Mspaintwizard Jun 18, 2026
ba3063e
Add folders and casettes to document case whitelist. Makes document c…
Slatebreaker Jun 18, 2026
a3a53dd
Fixed Debris Bags of Holding not fitting in normal bags (#2104)
MothHours Jun 18, 2026
80b13bd
Automated Changelog Update (#2091)
xemeraldwingx-dot Jun 18, 2026
bc64373
Automated Changelog Update (#2092)
xemeraldwingx-dot Jun 18, 2026
21d7f7e
Automated Changelog Update (#2103)
xemeraldwingx-dot Jun 18, 2026
191ae6e
Automated Changelog Update (#2104)
xemeraldwingx-dot Jun 18, 2026
5180033
changes (#2105)
fenndragon Jun 18, 2026
0469d6f
Automated Changelog Update (#2105)
xemeraldwingx-dot Jun 18, 2026
2c88f74
fix
fenndragon Jun 18, 2026
1577112
Update planets.yml
fenndragon Jun 18, 2026
4cea3e1
fix
fenndragon Jun 18, 2026
b6ee1b8
fix
fenndragon Jun 18, 2026
12d71b4
fix
fenndragon Jun 18, 2026
0865bf2
fix
fenndragon Jun 18, 2026
a59b0c0
Delete dungeons.yml
fenndragon Jun 18, 2026
cb473d9
Fix sanitiser to skip unknown gasses in vents/scrubbers and the missi…
IngvarJackal Jun 19, 2026
6c82116
Fix light sensitivity (#2122)
IngvarJackal Jun 19, 2026
5a22eb8
Automated Changelog Update (#2121)
xemeraldwingx-dot Jun 19, 2026
14ee02f
Port Goob chat highlight ping (#2090)
re-silvered Jun 19, 2026
7b9b5d0
port mono undock all button (#2124)
re-silvered Jun 19, 2026
f041bb1
Automated Changelog Update (#2122)
xemeraldwingx-dot Jun 19, 2026
543e49c
Automated Changelog Update (#2090)
xemeraldwingx-dot Jun 19, 2026
bae0d53
Automated Changelog Update (#2124)
xemeraldwingx-dot Jun 19, 2026
e2a38ff
On branch ElkridgeEdit (#2106)
8petalpool8-maker Jun 19, 2026
097395b
New Recruits.yml (#2114)
HighlandGearhop Jun 19, 2026
de1f5e7
Git template updates (#2123)
re-silvered Jun 19, 2026
1cac00f
Cherry-pick arachnophobia mode (#2127)
re-silvered Jun 19, 2026
8dd8aa5
fix/feat: attempt to fix stale votes + disable player access to votem…
re-silvered Jun 19, 2026
81025ac
revert: broken content + balancing changes (#2119)
fenndragon Jun 19, 2026
22f5cf1
feat/port: new marking systems, only a week away (#2110)
re-silvered Jun 19, 2026
59e79de
Make size of the character influence the pitch of emotes (#2112)
IngvarJackal Jun 19, 2026
c414239
Update SpaceArtillerySystem.cs (#2113)
TeliaRS643 Jun 19, 2026
dd55894
Automated Changelog Update (#2106)
xemeraldwingx-dot Jun 19, 2026
fb56c40
revert: all the expedition cherrypicks + bags of folding (#2130)
re-silvered Jun 19, 2026
7c538ec
fix missing rsi data for various bags (#2131)
re-silvered Jun 19, 2026
e375526
Automated Changelog Update (#2127)
xemeraldwingx-dot Jun 19, 2026
d5aa672
Automated Changelog Update (#2128)
xemeraldwingx-dot Jun 19, 2026
74f08ae
Automated Changelog Update (#2119)
xemeraldwingx-dot Jun 19, 2026
71b1a36
Automated Changelog Update (#2110)
xemeraldwingx-dot Jun 19, 2026
298cead
Automated Changelog Update (#2112)
xemeraldwingx-dot Jun 19, 2026
5735f31
Update CODEOWNERS
fenndragon Jun 19, 2026
101acaa
Integration Testing Fixes - Generic Bug Fixes (#2140)
DrekkCuga Jun 20, 2026
1adde82
Integration Testing Fixes - Construction Changes (#2141)
DrekkCuga Jun 20, 2026
bc04f9c
Automated Changelog Update (#2140)
xemeraldwingx-dot Jun 20, 2026
94a4f35
Integration Testing Fixes - Map Changes (#2143)
DrekkCuga Jun 20, 2026
b66389f
Automated Changelog Update (#2141)
xemeraldwingx-dot Jun 20, 2026
dba6488
Integration Testing Fixes - Pricing Changes (#2144)
DrekkCuga Jun 20, 2026
395b080
Integration Testing Fixes - Localisation Changes (#2142)
DrekkCuga Jun 20, 2026
92e856e
Automated Changelog Update (#2143)
xemeraldwingx-dot Jun 20, 2026
417a2ae
Automated Changelog Update (#2144)
xemeraldwingx-dot Jun 20, 2026
075254a
Automated Changelog Update (#2142)
xemeraldwingx-dot Jun 20, 2026
a106221
Size doesn't affect pitch (#2146)
IngvarJackal Jun 20, 2026
f9b0518
Automated Changelog Update (#2146)
xemeraldwingx-dot Jun 20, 2026
54d20b9
revert: to old chemmaster values (#2117) (#2147)
re-silvered Jun 20, 2026
3d5418f
Automated Changelog Update (#2147)
xemeraldwingx-dot Jun 20, 2026
5dba9a9
Nix update dotnet and repin to 25.11 (#2071)
Notarin Jun 20, 2026
715d927
Integration Testing Fixes - Integration Test Changes (#2145)
DrekkCuga Jun 20, 2026
42b886b
Automated Changelog Update (#2145)
xemeraldwingx-dot Jun 20, 2026
c7a803d
remove c# label (#2154)
re-silvered Jun 20, 2026
c656ac6
Cherry-pick NPCs behaving better in nograv/space by @Ilya246 (#4107)
ErhardSteinhauer May 25, 2026
eaf6ae9
HTN fix
fenndragon Jun 21, 2026
dbb3d2c
Feature Change - Bring us Roids (#2165)
Hammeredmantis Jun 21, 2026
a0aa24b
Automated Changelog Update (#2165)
xemeraldwingx-dot Jun 21, 2026
731c79c
Update NPCBlackboard.cs
fenndragon Jun 21, 2026
58bfdac
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 21, 2026
3ef45b3
fix icon visibility when it shouldn't be + attributes (#2151)
re-silvered Jun 21, 2026
4d9836a
Automated Changelog Update (#2151)
xemeraldwingx-dot Jun 21, 2026
624a340
Repairs broken AI Eye after FTL is complete (reupload) (#2157)
Typheus Jun 21, 2026
1bd5d35
Fix/ai shuttle control eye movement (reupload) (#2158)
Typheus Jun 21, 2026
f000395
Automated Changelog Update (#2157)
xemeraldwingx-dot Jun 21, 2026
d60d728
Patron plushies and posters (#2149)
NiaAranea Jun 21, 2026
b80252a
Automated Changelog Update (#2158)
xemeraldwingx-dot Jun 21, 2026
626a83a
(Amber Station) Geneticist office & Perma Expansion (#2150)
FieryTech Jun 21, 2026
425ef84
Patreon sprites (#2126)
fenndragon Jun 21, 2026
d1d5b7c
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 21, 2026
77038eb
Update events.yml
fenndragon Jun 21, 2026
f712a14
Hopefully it works (#2160)
Aphast Jun 21, 2026
2862948
Second Brighteye Patch (#2161)
ShadesMars Jun 21, 2026
8f2fcb2
Automated Changelog Update (#2161)
xemeraldwingx-dot Jun 21, 2026
c98b36d
fix harpy racial modifiers (#2153)
re-silvered Jun 21, 2026
aa19995
Automated Changelog Update (#2153)
xemeraldwingx-dot Jun 21, 2026
693e05a
Vinyl mald pr #2 (#2155)
2DSiggy Jun 21, 2026
1a52bc1
Automated Changelog Update (#2155)
xemeraldwingx-dot Jun 21, 2026
478607d
Update core.yml (#2164)
Mspaintwizard Jun 21, 2026
0e98065
revert heat hotfix
fenndragon Jun 21, 2026
4146725
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 21, 2026
4132446
Add a Colonial Command quadborg lawset (#2168)
Slatebreaker Jun 21, 2026
74cc603
chore?: fix and adjust some more git workflows (#2166)
re-silvered Jun 21, 2026
5434a2b
Sandevistan (#2162)
fenndragon Jun 21, 2026
b75a670
fix (some) felionoid racial bonuses (#2163)
re-silvered Jun 21, 2026
100d135
Automated Changelog Update (#2162)
xemeraldwingx-dot Jun 21, 2026
333f051
Automated Changelog Update (#2163)
xemeraldwingx-dot Jun 21, 2026
b2eaa79
Fixed invalid configurations on Amber (#2176)
DrekkCuga Jun 22, 2026
afbf66b
Automated Changelog Update (#2176)
xemeraldwingx-dot Jun 22, 2026
66cb6ed
Adds the return back (#2172)
NatusExVacuo Jun 22, 2026
bed6c37
Automated Changelog Update (#2172)
xemeraldwingx-dot Jun 22, 2026
483ff18
Concurrency Updates to Integration Tests (#2175)
DrekkCuga Jun 22, 2026
f9a0951
fix approvals labeller + protection workflow (#2182)
re-silvered Jun 22, 2026
11466a0
character overrides
fenndragon Jun 22, 2026
ba65d3d
fix (#2177)
ShadesMars Jun 23, 2026
1a8f6cf
Automated Changelog Update (#2177)
xemeraldwingx-dot Jun 23, 2026
10d3916
Delete required-approvals.yml (#2197)
re-silvered Jun 23, 2026
710fdce
Add 10 new jazz songs by Tim Kulig, and tweak sleeve functionality. (…
KaylaSolace Jun 23, 2026
e772b11
fix compulsions not saving (#2179)
re-silvered Jun 23, 2026
c5d384b
Fix psychologist loadouts to not force shoes (#2181)
DoubleHypercube Jun 23, 2026
a15d58e
Automated Changelog Update (#2179)
xemeraldwingx-dot Jun 23, 2026
cfb5eca
Automated Changelog Update (#2181)
xemeraldwingx-dot Jun 23, 2026
f1803b0
fix(localization): add missing localizations (#2186)
Khaomi Jun 23, 2026
db774fe
feat: allow egglaying without interact check (#2094) (#2184)
re-silvered Jun 23, 2026
d7ac4f7
Injector system cleanup (#2196)
re-silvered Jun 23, 2026
bf725e0
Added freelance borg and restricted borg printing for station borgs t…
Typheus Jun 23, 2026
c0a671c
Automated Changelog Update (#2186)
xemeraldwingx-dot Jun 23, 2026
ce8e28f
Automated Changelog Update (#2184)
xemeraldwingx-dot Jun 23, 2026
99bab92
Automated Changelog Update (#2196)
xemeraldwingx-dot Jun 23, 2026
18a9118
Automated Changelog Update (#2188)
xemeraldwingx-dot Jun 23, 2026
5d4b587
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 23, 2026
ff05bba
removed(jukebox): Removed Lone Digger by Caravan Palace (#5887) (#2205)
Khaomi Jun 23, 2026
d7d5412
Automated Changelog Update (#2205)
xemeraldwingx-dot Jun 23, 2026
6e52806
Fix church bell outputting chat messages (#2173)
re-silvered Jun 24, 2026
df3522f
Automated Changelog Update (#2173)
xemeraldwingx-dot Jun 24, 2026
58b394c
oops
fenndragon Jun 24, 2026
36f007a
Merge branch 'master' of https://github.com/HardLightSector/HardLight
fenndragon Jun 24, 2026
d628f1f
Rename LRSI to Lumi Reind Stellar Initiative (#2208)
DoubleHypercube Jun 24, 2026
097444f
feat: port more protogen sounds + sneezes for some other species (#2174)
re-silvered Jun 24, 2026
f326cb2
Automated Changelog Update (#2208)
xemeraldwingx-dot Jun 24, 2026
d2a89b4
fix: slime ghostroles (#1476) (#2183)
re-silvered Jun 24, 2026
e64a2ce
Update core.yml (#2194)
Mspaintwizard Jun 24, 2026
09338a9
feat: port (some) upstream admin changes (#2199)
re-silvered Jun 24, 2026
2bb5c9a
Fixed the shipyard tests and a ShuttleSystem crash (#2200)
DrekkCuga Jun 24, 2026
3ad67fa
Automated Changelog Update (#2174)
xemeraldwingx-dot Jun 24, 2026
07885db
Updated shuttle prices (and 2 busted ones) (#2201)
DrekkCuga Jun 24, 2026
7144d4c
Automated Changelog Update (#2183)
xemeraldwingx-dot Jun 24, 2026
e85e8f2
add spectral locator to loadout options (#2202)
re-silvered Jun 24, 2026
23f02ce
Automated Changelog Update (#2200)
xemeraldwingx-dot Jun 24, 2026
3c2e23b
Automated Changelog Update (#2201)
xemeraldwingx-dot Jun 24, 2026
e00d36c
Automated Changelog Update (#2202)
xemeraldwingx-dot Jun 24, 2026
f6d4338
Updated the Labeler to actually work, it has 2 flows to deal with the…
DrekkCuga Jun 27, 2026
a551f7e
Revert "Added freelance borg and restricted borg printing for station…
Typheus Jun 27, 2026
891311a
I'm porting it so hard rn, fae ears that is. (#2218)
Aphast Jun 27, 2026
f570777
feat: update passivedamage component to allow multiple sources (#1870…
re-silvered Jun 27, 2026
e0fecaf
Automated Changelog Update (#2198)
xemeraldwingx-dot Jun 27, 2026
122817b
docs: Added contribution guidelines (#2180)
Sully669 Jun 28, 2026
5d54fc5
Automated Changelog Update (#2180)
xemeraldwingx-dot Jun 28, 2026
f2bd9c5
Update box.yml
Mspaintwizard Jul 1, 2026
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Last match in file takes precedence.

* @HardLightSector/review-team
# Sorting by path instead of by who added it one day :(
# this isn't how codeowners rules work pls read the first comment instead of trying to force a sorting order

Expand Down
32 changes: 1 addition & 31 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ body:
attributes:
label: What happened?
description: Describe what actually occurred, including any error messages.
placeholder: "When I do X, Y occurs. Error log: ..."
placeholder: "When I do X, Y occurs. Error logs or images also help!"
validations:
required: true

Expand Down Expand Up @@ -51,37 +51,9 @@ body:
- Minor (visual glitch, typo, annoyance)
- Moderate (feature partially broken, workaround exists)
- Major (feature completely broken, impacts gameplay)
- Critical (crash, data loss, server issue)
validations:
required: true

- type: input
id: version
attributes:
label: Game version / build
description: Which version of Hardlight are you running?
placeholder: "e.g., v1.2.3 or latest main branch commit hash"
validations:
required: true

- type: input
id: context
attributes:
label: Server / Round ID / Timestamp
description: If applicable – helps us match server logs.
placeholder: "e.g., Hardlight-Main, Round 4821, 2026-05-06 ~14:30 UTC"
validations:
required: false

- type: textarea
id: logs
attributes:
label: Relevant logs / screenshots
description: Paste any error logs, console output, or attach screenshots.
placeholder: "Paste logs here or drag and drop images"
validations:
required: false

- type: checkboxes
id: checklist
attributes:
Expand All @@ -92,5 +64,3 @@ body:
required: true
- label: I can reproduce this bug consistently with the steps above
required: true
- label: I understand that bug fixes will be tested locally before PR and tested again before merge
required: true
5 changes: 2 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@


## About the PR
<!-- What did you change? -->
<!-- If this is a code change, summarize at high level how your new code works. This makes it easier to review. -->

## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was changed. Link any relevant discussions or issues. -->
<!-- If your PR closes an open issue put `closes #issuenumber` here so that the accompanying issue is automatically closed-->

## Technical details
<!-- Summary of code changes for easier review. -->
Expand All @@ -14,7 +13,7 @@
<!-- Describe a procedure to test this feature, along with expected output/behavior. -->

## Media
<!-- Attach media if the PR makes ingame changes (clothing, items, features, etc).
<!-- Attach media if the PR makes ingame changes (clothing, items, features, etc).
Small fixes/refactors are exempt. Media may be used in SS14 progress reports with credit. -->

## Breaking changes
Expand Down
45 changes: 45 additions & 0 deletions .github/actions/apply-label/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: 'Apply Label From Artifact'
description: 'Applies the label based on an artifact, so we can label things from weird places'

outputs:
pr_num:
description: "The PR Number"
value: ${{ steps.pr_data.outputs.pr_num }}

runs:
using: "composite"
steps:
- name: Fetch Run Artifact
uses: actions/download-artifact@v4
with:
merge-multiple: true
github-token: ${{ github.token }}
run-id: ${{ github.event.workflow_run.id }}

- name: Parse and Apply Label
id: pr_data
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
if [ ! -f "NR" ]; then
echo "Missing Data"
exit 0
fi
PR_NUMBER=$(cat NR)
LABEL_NAME=$(cat LABEL)

gh pr edit "$PR_NUMBER" --repo "${{ github.repository }}" --add-label "$LABEL_NAME"
echo "pr_num=$PR_NUMBER" >> $GITHUB_OUTPUT

# Delete cuz disk space is expensive in this economy
- name: Delete Artifact
shell: bash
env:
GH_TOKEN: ${{ github.token }}
TARGET_NAME: pr-approval-${{ github.event.workflow_run.id }}
run: |
ID=$(gh api repos/${{ github.repository }}/actions/artifacts --jq ".artifacts[] | select(.name==\"$TARGET_NAME\") | .id" | head -n 1)
if [ ! -z "$ID" ]; then
gh api --method DELETE repos/${{ github.repository }}/actions/artifacts/$ID
fi
4 changes: 0 additions & 4 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@
- changed-files:
- any-glob-to-any-file: "**/*.xaml*"

"C#":
- changed-files:
- any-glob-to-any-file: "**/*.cs"

"Shaders":
- changed-files:
- any-glob-to-any-file: '**/*.swsl'
Expand Down
173 changes: 151 additions & 22 deletions .github/workflows/build-test-debug.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
name: Build & Test Debug

on:
push:
branches: [ master, staging, stable ]
merge_group:
pull_request:
types: [ opened, reopened, synchronize, ready_for_review ]
branches: [ master, staging, stable ]

concurrency:
group: integration-tests-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
build:
if: github.actor != 'PJBot' && github.event.pull_request.draft == false && github.actor != 'FrontierATC' # Frontier
strategy:
matrix:
os: [ubuntu-latest]

runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
name: Build Client & Server
outputs:
test-list: ${{ steps.listtests.outputs.tests }}

steps:
# Make sure we check out the exact SHA that started the flow, so we don't test someone elses code
- name: Checkout Master
uses: actions/checkout@v4.2.2

- name: Setup Submodule
run: |
git submodule update --init --recursive
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive

- name: Pull engine updates
uses: space-wizards/submodule-dependency@v0.1.5
Expand All @@ -34,28 +35,156 @@ jobs:
git submodule update --init --recursive

- name: Setup .NET Core
uses: actions/setup-dotnet@v4.1.0
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.100

- name: Install dependencies
run: dotnet restore

- name: Build Project
run: dotnet build --configuration DebugOpt --no-restore /p:WarningsAsErrors=nullable /m

- name: Run Content.Tests
run: dotnet test --no-build --configuration DebugOpt Content.Tests/Content.Tests.csproj -- NUnit.ConsoleOut=0
# This takes all the test namespaces and puts them into the output so we can run multiple jobs for the tests at once
- name: List all Tests
id: listtests
run: |
echo "tests=$(dotnet test --no-build Content.IntegrationTests/Content.IntegrationTests.csproj \
--list-tests -- NUnit.DisplayName=FullName \
| grep -E "^[[:space:]]+[A-Za-z0-9_]+\." \
| sed 's/^[[:space:]]*//' \
| awk -F. '{print $1"."$2"."$3"."$4}' \
| sort -u | jq -R . | jq -s -c .)" >> "$GITHUB_OUTPUT"

# Rather than re-building for every test, we store the built workspace and just share that between all the jobs
- name: Cache Build Objects
uses: actions/cache/save@v5
with:
path: bin
key: build-pr-${{ github.event.pull_request.number }}

# We have to checkout because the tests look for a bunch of local resources
# But the cache means we don't have to re-build every time at least.
tests:
runs-on: ubuntu-latest
name: Run Tests
needs: build
steps:
- name: Checkout Master
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive

- name: Setup .NET Core
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.100

- name: Fetch Pre-Built Workspace
id: fetch
continue-on-error: true
uses: actions/cache/restore@v5
with:
path: bin
key: build-pr-${{ github.event.pull_request.number }}
fail-on-cache-miss: true

- name: Re-Build the files if the cached build is missing
if: steps.fetch.outcome == 'failure'
run: |
dotnet restore
dotnet build --configuration DebugOpt --no-restore /p:WarningsAsErrors=nullable /m

- name: Run Tests
run: dotnet vstest ./bin/Content.Tests/Content.Tests.dll -- NUnit.ConsoleOut=0


integrationtests:
runs-on: ubuntu-latest
needs: build
name: Run Integration Tests
strategy:
fail-fast: false
max-parallel: 20
matrix:
test: ${{ fromJson(needs.build.outputs.test-list) }}
steps:
- name: Checkout Master
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
submodules: recursive

# Github sometimes gets a bit angry if ALL the jobs hit the cache at once, so staggering a little bit seems to make them start happier
- name: Delay to stagger starts
run: |
DELAY=$((1 + RANDOM % 15))
echo "Staggering for $DELAY seconds"
sleep $DELAY

- name: Run Content.IntegrationTests
shell: pwsh
- name: Setup .NET Core
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.100

- name: Fetch Pre-Built Workspace
id: fetch
continue-on-error: true
uses: actions/cache/restore@v5
with:
path: bin
key: build-pr-${{ github.event.pull_request.number }}
fail-on-cache-miss: true

- name: Re-Build the files if the cached build is missing
if: steps.fetch.outcome == 'failure'
run: |
dotnet restore
dotnet build --configuration DebugOpt --no-restore /p:WarningsAsErrors=nullable /m

- name: Run Integration Tests
continue-on-error: true
id: integrationtestrun
env:
DOTNET_GCHighMemPercent: 75
run: |
dotnet test ./bin/Content.IntegrationTests/Content.IntegrationTests.dll \
--logger "console;verbosity=normal" \
--filter "FullyQualifiedName~${{ matrix.test }}" -- \
NUnit.ConsoleOut=0 NUnit.MapWarningTo=Failed

# For some reason, the github runners just randomly crash
# If they do, re-run the tests and slow things down a bit
# But also upload the crash dump as an artifact in-case things are really broken.
- name: Re-Run Integration Tests on failure
if: steps.integrationtestrun.outcome == 'failure'
env:
DOTNET_gcServer: 0
DOTNET_GCHighMemPercent: 75
ROBUST_TEST_THREADS: 2
run: |
$env:DOTNET_gcServer=1
dotnet test --no-build --configuration DebugOpt Content.IntegrationTests/Content.IntegrationTests.csproj --filter "FullyQualifiedName!~ShipyardTest" -- NUnit.ConsoleOut=0 NUnit.MapWarningTo=Failed
dotnet test ./bin/Content.IntegrationTests/Content.IntegrationTests.dll \
--logger "console;verbosity=normal" \
--blame-crash --blame-crash-dump-type mini \
--filter "FullyQualifiedName~${{ matrix.test }}" -- \
MaxCpuCount=1 NUnit.NumberOfTestWorkers=1 NUnit.ConsoleOut=0 NUnit.MapWarningTo=Failed

- name: Upload Crash Dump
if: failure() && steps.integrationtestrun.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: crash-dump-${{matrix.test}}
retention-days: 3
path: |
**/TestResults/**/*.xml
**/TestResults/**/*.dmp

ci-success:
name: Build & Test Debug
name: Testing Success
needs:
- build
- tests
- integrationtests
runs-on: ubuntu-latest
steps:
- name: CI succeeded
Expand Down
14 changes: 13 additions & 1 deletion .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
name: PR Changelogs
concurrency: commit_action
concurrency:
group: commit_action
cancel-in-progress: false
queue: max

on:
pull_request_target:
types: [closed]
Expand Down Expand Up @@ -40,6 +44,7 @@ jobs:
shell: bash

- name: Generate Changelog
id: gen_changelog
run: |
cd "Tools/changelog"
node changelog.js
Expand All @@ -53,3 +58,10 @@ jobs:
git push
shell: bash
continue-on-error: true

- name: Publish changelog
run: Tools/actions_changelog_publish_discord.py
env:
DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }}
DISCORD_CHANGELOG: ${{ steps.gen_changelog.outputs.changelog }}
continue-on-error: true
Loading
Loading