Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
463 commits
Select commit Hold shift + click to select a range
9e7de8d
ModMetadata shouldn't be mutable
CJ-SPT May 22, 2026
bc1069e
- Pass prepatch info to the next process
CJ-SPT May 23, 2026
1d01869
Always exit `StartServer` on success or failure inside the prepatch c…
CJ-SPT May 23, 2026
cd07711
Replace SPT's logging system with ZLogger
ArchangelWTF May 23, 2026
8d9663b
Fix format in sequence
ArchangelWTF May 23, 2026
bd3e2e1
Add todos
ArchangelWTF May 23, 2026
004b684
Bump packages
ArchangelWTF May 23, 2026
e809223
Add missing prestige achievements, fix up code to give prestige achie…
ArchangelWTF May 23, 2026
368454b
Backport prestige backport migration (#761)
ArchangelWTF May 23, 2026
9ced071
Fix incorrect assignment of SelectedMemberCategory (#741)
ArchangelWTF May 23, 2026
4ac5f70
Ignore case sensitivity for Global locales (#744)
ArchangelWTF May 23, 2026
fcb7d14
Merge branch '4.1.x-dev' into replace-logger-impl
ArchangelWTF May 23, 2026
be4bd93
Fix reviews
CJ-SPT May 23, 2026
45003a2
reduce nesting
CJ-SPT May 23, 2026
29c9ee1
update name and comment
CJ-SPT May 23, 2026
e02093b
Add a roll manager to remove old files, cleanup
ArchangelWTF May 23, 2026
b6b74d5
Cleanup pattern replacer
ArchangelWTF May 23, 2026
d51e17b
Merge pull request #760 from sp-tarkov/prepatcher
ArchangelWTF May 23, 2026
100eb36
Cleanup SptLoggerExtensions
ArchangelWTF May 23, 2026
cedbe05
Get result when disposing
ArchangelWTF May 23, 2026
e34c901
Map Microslop LogLevel's to colors
ArchangelWTF May 23, 2026
145400e
Null out white so it doesn't look slightly off against other colors
ArchangelWTF May 23, 2026
5109c1e
Fix ConfigureLogging warning
ArchangelWTF May 23, 2026
23ef7dd
Cleanup SptLoggerConfiguration
ArchangelWTF May 23, 2026
9d34990
use async overload
CJ-SPT May 24, 2026
307f34d
Add some basic cecil helpers
CJ-SPT May 24, 2026
617cfea
change how the module is passed for new helpers
CJ-SPT May 24, 2026
1e727da
Merge pull request #762 from sp-tarkov/replace-logger-impl
ArchangelWTF May 24, 2026
d659225
Revert "Replaced various instances of dictionaries and hashsets with …
CJ-SPT May 24, 2026
afb516e
Merge remote-tracking branch 'origin/4.1.x-dev' into 4.1.x-dev
CJ-SPT May 24, 2026
207f239
`additional_info` no longer exists in the client
CJ-SPT May 24, 2026
eb947e0
inline modLoaderController
ArchangelWTF May 24, 2026
5ed8b21
Validate scopes in all build types so modders cant shoot themselves i…
ArchangelWTF May 24, 2026
3cb40ca
Cleanup old unused cloners and benchmarks
ArchangelWTF May 24, 2026
6b7a24d
Resolve `object` with new type and converter
CJ-SPT May 24, 2026
d4c2178
Fix prop name
CJ-SPT May 24, 2026
451014c
Change publicity
CJ-SPT May 25, 2026
b54e737
Allow modded items to skip handbook and flea price entries (#688)
ArchangelWTF May 25, 2026
426656d
Add props to base & copy code to `CreateItem` (#688)
ArchangelWTF May 25, 2026
31c9c0c
Add shelf option (#688)
ArchangelWTF May 25, 2026
bc900a2
Add custom item to pmc loot blacklist if not added to flea price db
May 25, 2026
c47f75f
Add throw is price is null or 0, can be handled instead but throwing …
May 25, 2026
24aedb1
Also update CreateItem
May 25, 2026
f6e4155
Merge pull request #763 from acidphantasm/fix-pmc-customitem
CJ-SPT May 25, 2026
a3cc8fa
Move mod loading code into mod loader
CJ-SPT May 25, 2026
792af2a
Massive program.cs cleanup
CJ-SPT May 25, 2026
7487b4f
Make `PMCLootGenerator` singleton
ArchangelWTF May 25, 2026
944b8dd
Remove unnecessary nullable
ArchangelWTF May 25, 2026
b9af36e
Move modding services into modding folder
ArchangelWTF May 25, 2026
f9fc205
Cleanup `BackupService` and seal
ArchangelWTF May 25, 2026
0c8084d
private naming
ArchangelWTF May 25, 2026
b3ad358
Add `IHttpClientFactory` as an injectable, add Github HttpClient
ArchangelWTF May 25, 2026
ab2e587
Organize generators into scoped namespaces
CJ-SPT May 27, 2026
b9f1f3d
missed `WeatherGenerator`
CJ-SPT May 27, 2026
3c4b834
Shorten weather generators naming, move interface to scope its used
CJ-SPT May 27, 2026
5aa2bbf
clean test mods
CJ-SPT May 27, 2026
3cec847
Add build specific `HttpClient` logging filter
CJ-SPT May 27, 2026
6fe88c4
Change visibility
CJ-SPT May 27, 2026
b6cf0c5
clean unused usings
CJ-SPT May 27, 2026
64fc2a0
Make HttpClient logger skip console
ArchangelWTF May 27, 2026
e0c7f58
Fix exhaustablearray (#766)
acidphantasm May 28, 2026
f972a36
Revert return type change on DialogueController.cs
May 28, 2026
2fdd605
Merge pull request #767 from acidphantasm/fix-dialoguecontroller
CJ-SPT May 28, 2026
2ac6c11
Tighten strict typed routing
ArchangelWTF May 29, 2026
de2be18
Pull `CancellationToken` through to a lot more async stuff
ArchangelWTF May 29, 2026
b1d945e
Update xmldocs
ArchangelWTF May 29, 2026
4ca5b84
Pass cancellation through to router
ArchangelWTF May 29, 2026
2f3f3c0
Update docs
ArchangelWTF May 29, 2026
0cb0115
Add missing USEC clothing, thanks Groovey (#733)
ArchangelWTF May 29, 2026
bbae38b
Add missing BEAR clothing (#733)
ArchangelWTF May 29, 2026
269c094
Add three missing achievement images
CWXDEV May 29, 2026
344c95f
Fix naming
ArchangelWTF May 30, 2026
7e8da17
Handle graceful cancellation during db import
ArchangelWTF May 30, 2026
8ab8011
Add docs for `IOnLoad` and `IOnUpdate`
ArchangelWTF May 30, 2026
d649485
Throw cancellation on update
ArchangelWTF May 30, 2026
1847889
Merge pull request #768 from sp-tarkov/cancellationtoken
ArchangelWTF May 30, 2026
a2e2805
Fix fucked xml doc
ArchangelWTF May 30, 2026
9379b33
Fix logger issues when keeping debug instance open
ArchangelWTF May 30, 2026
984ba94
Make raid start and raid end async
ArchangelWTF May 30, 2026
d0027c9
Fix tests
ArchangelWTF May 30, 2026
ca35568
Injectable `DatabaseTables`
CJ-SPT May 31, 2026
96f3b40
Port server db to DI
CJ-SPT May 31, 2026
cb66938
rename importer
CJ-SPT May 31, 2026
378983f
Merge pull request #769 from sp-tarkov/di-database
ArchangelWTF May 31, 2026
4739d32
Remove PostDB `TypePriority`, readjust typepriorities and load sequence
ArchangelWTF May 31, 2026
4700f32
Add comment
ArchangelWTF May 31, 2026
81fd267
Update test mods
ArchangelWTF May 31, 2026
4bf23f5
Fix up logging, simplify LINQ
ArchangelWTF May 31, 2026
538aaac
Fix logger warning
ArchangelWTF May 31, 2026
a1f7320
Cleanup Kestrel init, configure ip and port on RunAsync
ArchangelWTF May 31, 2026
750acdb
Update cert gen
ArchangelWTF May 31, 2026
b8091b6
Cleanup SPTarkov.Server & add more detailed logging for socketexception
ArchangelWTF May 31, 2026
9ea0e5c
Update log
ArchangelWTF May 31, 2026
ef0c33d
Move tables to tables namespace, use TradersTable
ArchangelWTF May 31, 2026
13d98ce
Revert comments
ArchangelWTF May 31, 2026
854dae5
remove virtualizer patch
CJ-SPT May 31, 2026
55cb508
remove override from injectable attr
CJ-SPT May 31, 2026
d7a519a
Merge pull request #770 from sp-tarkov/devirtualize
ArchangelWTF May 31, 2026
e374f05
remove redundant method
CJ-SPT May 31, 2026
2b8c63f
use new `field` keyword
CJ-SPT May 31, 2026
29e38d9
use field keyword
CJ-SPT May 31, 2026
d61f2ae
Bring in ceciler project source and flatten tool to a single project
CJ-SPT May 31, 2026
5502907
Add `ZLing` nuget package
CJ-SPT May 31, 2026
20cc682
fix build
CJ-SPT Jun 1, 2026
109f1b9
Organize services into scope relevant namesapces
CJ-SPT Jun 1, 2026
bc474d3
Move helpers into scope relevant namespaces
CJ-SPT Jun 1, 2026
dceeac4
Move ragfair services to ragfair namespace + clean up `RagfairServer`…
CJ-SPT Jun 1, 2026
f953a48
Various cleanup & Devirtualize
ArchangelWTF Jun 1, 2026
c11a292
Refactor `ItemEventRouter` and make it simpler to use
ArchangelWTF Jun 1, 2026
e110664
Move ValueTasks into Callbacks
ArchangelWTF Jun 1, 2026
63462fb
Merge pull request #771 from sp-tarkov/ItemEventRouter-Refactor
CJ-SPT Jun 1, 2026
ccfa5f2
Server Information Panel (SIC)
CJ-SPT Jun 1, 2026
9455f94
Profile editing
CJ-SPT Jun 3, 2026
16f00b2
Mod page landing page card registration
CJ-SPT Jun 3, 2026
5cecf6d
Add new WebLocalizationService, create reusable base class
CJ-SPT Jun 3, 2026
64a3c05
localise landing page
CJ-SPT Jun 3, 2026
1bfe224
localize rest of the pages
CJ-SPT Jun 3, 2026
a9c86d8
Fix TraderHelper warnings, remove get style methods from TraderContro…
CJ-SPT Jun 4, 2026
0801b8f
Improves MongoID
Lacyway Jun 5, 2026
8a81b33
Formatting
Lacyway Jun 5, 2026
3b63ca6
Improve allocations when serializing MongoIDs
Lacyway Jun 5, 2026
8058a6f
Fix new profile NRE, make `TradersInfo` nullable
CJ-SPT Jun 5, 2026
9ba33ee
Improves MongoID
Lacyway Jun 5, 2026
18a6359
Formatting
Lacyway Jun 5, 2026
c7e0944
Improve allocations when serializing MongoIDs
Lacyway Jun 5, 2026
1165cf2
Merge branch '4.1.x-dev-mongoidrefactor' of https://github.com/sp-tar…
Lacyway Jun 5, 2026
1d81130
Fix tests, thanks CJ xdx
ArchangelWTF Jun 5, 2026
ebcb705
Remove importer
ArchangelWTF Jun 5, 2026
09874e5
Merge branch '4.1.x-dev' into 4.1.x-dev-mongoidrefactor
Lacyway Jun 5, 2026
6103440
Merge pull request #773 from sp-tarkov/4.1.x-dev-mongoidrefactor
Lacyway Jun 5, 2026
e051758
Fix CI: Remove virtualizer from release builds
ArchangelWTF Jun 5, 2026
8bcc5a4
Extend `MongoId` to construct from `ReadOnlySpan` (#774)
ArchangelWTF Jun 6, 2026
47266b5
Fix compiler errors
Lacyway Jun 6, 2026
236463e
Fix double not being rounded
Lacyway Jun 6, 2026
3eee24a
Remove double.Parse
CJ-SPT Jun 6, 2026
7e48153
Convert level params to int
CJ-SPT Jun 6, 2026
4e103d6
quest helper warning fixes
CJ-SPT Jun 7, 2026
e6eead3
fix reward helper warnings
CJ-SPT Jun 7, 2026
d882350
Fix TradeHelper warnings
CJ-SPT Jun 7, 2026
5308b92
more warning fixes
CJ-SPT Jun 7, 2026
14c1f88
Add `IOnDIConstruct` to allow adding to `IServiceCollection`
ArchangelWTF Jun 8, 2026
a50ca62
Rename `OnLoad to `OnLoadAsync' and `OnUpdate` to `OnUpdateAsync`
ArchangelWTF Jun 8, 2026
859e870
fix mod loader failing without mods enabled
CJ-SPT Jun 13, 2026
6bab7ad
Merge remote-tracking branch 'origin/4.1.x-dev' into 4.1.x-dev
CJ-SPT Jun 13, 2026
8b066d0
Hash web panel passwords with Argon2id (#775)
refringe Jun 15, 2026
3369bcb
Normalize image route keys and remove URL-encoded icon
refringe Jun 20, 2026
3e9674a
fix issue
CJ-SPT Jun 20, 2026
1e44c4c
Merge remote-tracking branch 'origin/4.1.x-dev' into 4.1.x-dev
CJ-SPT Jun 20, 2026
29a668a
Updated fallback error message text
Jun 25, 2026
de87b81
change from razor directive @section (#776)
acidphantasm Jun 26, 2026
96fd8fa
SIC fix: home button tooltip breaking cursor behaviour due to viewpor…
acidphantasm Jun 26, 2026
62f687a
validate levels & experience are within range
Jun 26, 2026
ad8b823
clamp nickname length to 15
Jun 26, 2026
5892e1e
clamp levels, adjust experience to stay within range of levels
Jun 26, 2026
f96b211
locales
Jun 26, 2026
d423e0b
Merge pull request #779 from acidphantasm/enh-sic
CJ-SPT Jun 26, 2026
c11b340
Update comment
ArchangelWTF Jun 29, 2026
d303ad0
Refactor WS and make it less of an eye-sore
ArchangelWTF Jun 29, 2026
0885390
Extend ModHelper to read files relative to a mod’s own folder (#783)
sgtlaggy Jun 30, 2026
b951838
Inject http context
ArchangelWTF Jun 30, 2026
25e286f
Improve support for BackendIp being 0.0.0.0
ArchangelWTF Jun 30, 2026
61b0e10
Use const
ArchangelWTF Jun 30, 2026
76c4730
Bump packages
ArchangelWTF Jul 3, 2026
f49e906
Fix DI on tests
ArchangelWTF Jul 3, 2026
b21bc21
Update tests
ArchangelWTF Jul 3, 2026
423e9ac
Disable profile edits if profile is wiped
ArchangelWTF Jul 3, 2026
e0d59c6
Add prestiging to SIC
ArchangelWTF Jul 3, 2026
88e0bbf
Yeet old launcher routing
ArchangelWTF Jul 3, 2026
f2bb2be
add wipe to miniprofile
CWXDEV Jul 3, 2026
597ab2f
Merge remote-tracking branch 'origin/4.1.x-dev' into 4.1.x-dev
CWXDEV Jul 3, 2026
6f79560
Updated server locales with crowdin data
Jul 4, 2026
644c488
Move satellite assemblies locs to SPT_Data/dotnet
ArchangelWTF Jul 4, 2026
683b259
Add converter for client to spectreConsole color type.
CWXDEV Jul 4, 2026
9a10420
In memory prepatcher (#784)
ArchangelWTF Jul 4, 2026
ed23fad
Fix relocation on publish
ArchangelWTF Jul 4, 2026
9185fc2
CF cache bust
ArchangelWTF Jul 4, 2026
ae53c93
Add Docker image and GHCR release workflow
refringe Jul 5, 2026
40f6df9
Fix bots multiplying in certain UI elements (#787)
ArchangelWTF Jul 5, 2026
30cc768
Write system information to log file in release
ArchangelWTF Jul 5, 2026
285aa69
Add ARM arch
ArchangelWTF Jul 6, 2026
4d3407d
Set docker backend ip to 0.0.0.0
ArchangelWTF Jul 6, 2026
693fb81
Add docker health endpoint
ArchangelWTF Jul 6, 2026
b7140fa
reorganize in-memory load and share context (#793)
CJ-SPT Jul 8, 2026
441538e
Update comment
ArchangelWTF Jul 8, 2026
aa87ab1
Update comment
ArchangelWTF Jul 8, 2026
ea6e695
Add launcher endpoint for SIC mod pages
refringe Jul 9, 2026
9bb7dd8
Adds issue template for BE
refringe Jul 5, 2026
5e57ab6
Update README.md, add CONTRIBUTING.md
ArchangelWTF Jul 10, 2026
d6b34c3
Revert "Updated location data"
ArchangelWTF Jul 10, 2026
eccf551
Revert "Updated bot JSON"
ArchangelWTF Jul 10, 2026
d5257cf
Add DISCORD gift code
ArchangelWTF Jul 10, 2026
91986fc
Max send to player to 1
ArchangelWTF Jul 10, 2026
a46b647
Blacklist Friend from Norvinsk
ArchangelWTF Jul 10, 2026
4baee7e
Remove LogLevel enum, use Microsoft LogLevel
ArchangelWTF Jul 10, 2026
7596df5
Bump MudBlazor version
ArchangelWTF Jul 11, 2026
168ce26
Improve Hideout QTE system
ArchangelWTF Jul 11, 2026
1333564
Extract gooner spawning to it's own service and add RotationIntervalH…
ArchangelWTF Jul 11, 2026
633518f
Make props required
ArchangelWTF Jul 11, 2026
2436511
fixed fence soft armor randomization to be based off of the mods prov…
Jul 11, 2026
ce06327
Merge pull request #797 from GrooveypenguinX/fixfencesoftarmor
ArchangelWTF Jul 11, 2026
1f70200
Remove secure containers from filter
ArchangelWTF Jul 11, 2026
9f470f1
Add contains search & slightly improve fuzzy matching
ArchangelWTF Jul 11, 2026
f9d625c
Update qemu action
ArchangelWTF Jul 11, 2026
b926de3
Rename ProfileValidatorService -> ProfileMigrationService
ArchangelWTF Jul 13, 2026
37d3df7
Refactor migrations to have persisting context
ArchangelWTF Jul 13, 2026
9fe9440
Throw on missing migration
ArchangelWTF Jul 13, 2026
1abfa4a
Move more migrations to use extensions
ArchangelWTF Jul 13, 2026
613ad46
Move more migrations to use extensions
ArchangelWTF Jul 13, 2026
c438ea2
Fix up skill values being able to go into negative
ArchangelWTF Jul 13, 2026
9799478
Add profile migration for botched quest (TG employee)
ArchangelWTF Jul 13, 2026
1c149e2
Add migration for voice & move head to migration
ArchangelWTF Jul 13, 2026
b64eb65
Remove MongoId from CanHandle, move listener early
ArchangelWTF Jul 13, 2026
a0563b1
remove if block, for default
CWXDEV Jul 15, 2026
2ad7f89
remove converter, modules also updated for this
CWXDEV Jul 15, 2026
30dd1b7
Make exception more clear
ArchangelWTF Jul 15, 2026
88b63bb
Add Harmony and MonoMod to shared assemblies
ArchangelWTF Jul 15, 2026
236d284
Ignore JS & TS files if mod is IModWebMetadata
ArchangelWTF Jul 16, 2026
3383a8b
Make mod interfaces more clear
ArchangelWTF Jul 16, 2026
3d0a5fa
host application -> SPT Server
ArchangelWTF Jul 16, 2026
a89a3ae
Remove stale insurance notifications (#803)
ArchangelWTF Jul 16, 2026
8645ed3
Remove trader standing clamp (#798)
ArchangelWTF Jul 16, 2026
30ebb06
Add Shadow of Tagilla only figurines to pmc loot blacklist
Jul 17, 2026
ca36c7f
Merge pull request #806 from acidphantasm/fix-pmc-loot
ArchangelWTF Jul 17, 2026
b798358
Merge pull request #807 from acidphantasm/enh-ragfair
acidphantasm Jul 17, 2026
207ae0b
Launcher profile stats (#809)
CWXDEV Jul 17, 2026
6684c7f
Throw exception if files fail validation
ArchangelWTF Jul 20, 2026
e6d1659
Add exception
ArchangelWTF Jul 20, 2026
c898c2c
Json enum extensions (#818)
CJ-SPT Jul 22, 2026
7ca75d5
Add Cultist Circle support for "and/or" (#810)
acidphantasm Jul 23, 2026
b7bfc2d
Updated Cultist Circle Recipes (#802)
RuKira Jul 23, 2026
e80d844
prevent ceciler binaries changing every build
refringe Jul 24, 2026
dbfda7e
output identical ceciler across build configs
refringe Jul 24, 2026
760d5a9
stop tracking ceciler build output
refringe Jul 24, 2026
f7aa9ea
Fix up early cancellation
ArchangelWTF Jul 24, 2026
58e07f1
Fix tests
ArchangelWTF Jul 24, 2026
0c2d233
Partial revert hideout (#815)
ArchangelWTF Jul 24, 2026
782fd88
Fix gear rack on dev profiles & add fuel in generator
ArchangelWTF Jul 24, 2026
83dac9a
Refactor blacklist & whitelist of EoD quests (#808)
ArchangelWTF Jul 24, 2026
ac7196a
Whitelist The Good Times, Part 1 for Unheard
ArchangelWTF Jul 24, 2026
606ea03
Refactor BotEquipmentFilterService
ArchangelWTF Jul 24, 2026
1dd3ee0
Inject ClientEnumDefinitions regardless of mods
ArchangelWTF Jul 24, 2026
998c3ff
fix wiping logic
CWXDEV Jul 24, 2026
613a973
fix time formatting on data sent with profile
CWXDEV Jul 24, 2026
b94a809
Good riddance (#819)
CJ-SPT Jul 24, 2026
90ad1d7
Add additional tests & checks
ArchangelWTF Jul 25, 2026
bf7bd88
SIC enhancements (#821)
acidphantasm Jul 25, 2026
6090b81
change var to be clearer named
CWXDEV Jul 25, 2026
d90a299
formatting and correct datetime to be correct, should always be posit…
CWXDEV Jul 25, 2026
c38c1ee
Improve server testability & readability
ArchangelWTF Jul 30, 2026
1909160
Updated server locales with crowdin data
Jul 30, 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
  •  
  •  
  •  
24 changes: 24 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Build Outputs
**/bin/
**/obj/

# VCS/IDE/CI metadata
.git/
.github/
.idea/
.vs/
.vscode/

# Do it live!
Testing/

# Runtime state
**/user/
**/logs/

# Docker & Docs
Dockerfile
.dockerignore
compose.yaml
docker-compose.yml
**/*.md
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ resharper_member_can_be_made_static_global_highlighting = none
resharper_possible_multiple_enumeration_highlighting = none
resharper_collection_never_updated_global_highlighting = none
resharper_unused_auto_property_accessor_global_highlighting = none
resharper_convert_to_auto_property_highlighting = none

# Ignored warnings
dotnet_diagnostic.CS1591.severity = none
Expand Down
11 changes: 11 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# CODEOWNERS
# https://docs.github.com/articles/about-code-owners

# GitHub Workflows
/.github/workflows/ @Refringe

# Docker Container Build-out
/Dockerfile @Refringe
/.dockerignore @Refringe
/compose.yaml @Refringe
/docker/ @Refringe
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/1-bug-report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: "Bug Report"
description: "Report a bug in the SPT project."
name: "Bug Report - Stable 4.0"
description: "Report a bug in the current stable (4.0) release of the SPT project."
labels: ["triage"]
body:
- type: markdown
Expand Down Expand Up @@ -59,7 +59,7 @@ body:
id: log_server
attributes:
label: "Server Log"
description: "Upload a copy of your *entire* server log: `SPT/user/logs/spt/spt.txt`."
description: "Upload your *entire* server log for the affected session from `SPT/user/logs/spt/`. Files are named `spt<date>.log`."
placeholder: "Attach the log file. Do not paste the contents."
validations:
required: true
Expand Down
109 changes: 109 additions & 0 deletions .github/ISSUE_TEMPLATE/2-bug-report-4-1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: "Bug Report - Bleeding Edge 4.1"
description: "Report a bug in a pre-release (4.1) version of the SPT project."
labels: ["triage", "bleeding edge"]
body:
- type: markdown
attributes:
value: |
## Thank you for taking the time to fill out a bug report!

You are reporting against a **pre-release (bleeding-edge) 4.1 build**. These builds are unstable and change frequently, so please note the following requirements:

- You must be able to replicate the issue with a fresh profile, running no mods. If you can't, we can't fix it.
- If you are using a profile from an older version, please make a fresh profile and replicate the issue before submitting.
- You must upload all the required log files, even if you think they are useless.
- Failure to comply with any of the above requirements will result in your issue being closed without notice.
- type: dropdown
id: version
attributes:
label: SPT Version
description: What version of SPT are you using?
options:
- "4.1"
validations:
required: true
- type: input
id: build
attributes:
label: "Build Name"
description: "The exact build name you're running. This can be found in the #dev-builds channel where you downloaded the BE build. This is critical."
placeholder: "e.g. SPT-BLEEDINGEDGE-4.1.0-40743-9185fc2-20260704"
validations:
required: true
- type: dropdown
id: projects
attributes:
label: "Project Type"
description: "If known, which part of the project is involved in this bug report?"
options:
- "Server"
- "Modules"
- "Launcher"
multiple: true
validations:
required: false
- type: textarea
id: result_expected
attributes:
label: "Expected Result"
description: "What you expect to happen?"
validations:
required: true
- type: textarea
id: result_actual
attributes:
label: "Actual Result"
description: "What actually happened?"
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: "Steps To Reproduce"
description: "Describe in point form the steps we can take to reproduce the issue on our end."
validations:
required: true
- type: textarea
id: log_server
attributes:
label: "Server Log"
description: "Upload your *entire* server log for the affected session from `SPT_Runtime/user/logs/spt/`. Files are named `spt<date>.log`."
placeholder: "Attach the log file. Do not paste the contents."
validations:
required: true
- type: textarea
id: log_bepinex
attributes:
label: "BepinEx Log"
description: "Upload a copy of your *entire* BepinEx log: `/BepinEx/LogOutput.log`."
placeholder: "Attach the log file. Do not paste the contents."
validations:
required: true
- type: textarea
id: log_client
attributes:
label: "Client Log"
description: "Upload a copy of your *entire* client log: `/Logs/log_<date>_<version>/<date>_<version> traces.log`."
placeholder: "Attach the log file. Do not paste the contents."
validations:
required: true
- type: textarea
id: profile
attributes:
label: "Player Profile"
description: "If helpful, upload a copy of your *entire* player profile: `SPT_Runtime/user/profiles/<profileId>.json`."
placeholder: "Attach the profile file. Do not paste the contents."
validations:
required: false
- type: textarea
id: screenshots
attributes:
label: "Screenshots"
description: "If helpful, upload any screenshots or videos you think would help us identify the issue."
validations:
required: false
- type: markdown
attributes:
value: |
## BEFORE YOU SUBMIT
Ensure that your logs are attached. **No logs = Issue deleted**
46 changes: 0 additions & 46 deletions .github/workflows/analyze.yaml

This file was deleted.

104 changes: 104 additions & 0 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Docker Release

on:
push:
tags:
# Stable, e.g. 4.1.0 -> RELEASE
- '[0-9]+.[0-9]+.[0-9]+'
# Bleeding edge, e.g. 4.1.0-BE-20260704 -> BLEEDINGEDGE
- '[0-9]+.[0-9]+.[0-9]+-BE-[0-9]+'
# Bleeding edge + mods, e.g. 4.1.0-BEM-20260704 -> BLEEDINGEDGEMODS
- '[0-9]+.[0-9]+.[0-9]+-BEM-[0-9]+'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: read
packages: write

jobs:
docker:
name: Docker Image
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: false

- name: Configure Git LFS
run: |
git lfs install
git config -f .lfsconfig lfs.url https://spt-lfs.sp-tarkov.com/sp-tarkov/server-csharp
git config -f .lfsconfig lfs.locksverify false
git lfs pull

# Determine the release channel from the tag and map it onto the MSBuild version props.
# channel: release | edge | edge-mods
# stable: true only for a plain X.Y.Z tag (drives latest/major tags)
# buildtype: RELEASE | BLEEDINGEDGE | BLEEDINGEDGEMODS
# sptversion: numeric core ONLY (e.g. 4.1.0).
- name: Build Metadata
id: vars
run: |
TAG="${GITHUB_REF#refs/tags/}"
case "$TAG" in
*-BEM-*) CHANNEL=edge-mods; BUILDTYPE=BLEEDINGEDGEMODS; STABLE=false ;;
*-BE-*) CHANNEL=edge; BUILDTYPE=BLEEDINGEDGE; STABLE=false ;;
*) CHANNEL=release; BUILDTYPE=RELEASE; STABLE=true ;;
esac
CORE="${TAG%%-*}"
{
echo "sptversion=${CORE}"
echo "channel=${CHANNEL}"
echo "stable=${STABLE}"
echo "buildtype=${BUILDTYPE}"
echo "commit=$(git rev-parse --short=7 HEAD)"
echo "buildtime=$(date +%s)"
} >> "$GITHUB_OUTPUT"

- name: Setup QEMU
uses: docker/setup-qemu-action@v4

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate Image Metadata
id: meta
uses: docker/metadata-action@v6
with:
images: ghcr.io/${{ github.repository }}
flavor: |
latest=false
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}},enable=${{ steps.vars.outputs.stable == 'true' }}
type=semver,pattern={{major}},enable=${{ steps.vars.outputs.stable == 'true' && !startsWith(github.ref, 'refs/tags/0.') }}
type=raw,value=latest,enable=${{ steps.vars.outputs.stable == 'true' }}
type=raw,value=edge,enable=${{ steps.vars.outputs.channel == 'edge' }}
type=raw,value=edge-mods,enable=${{ steps.vars.outputs.channel == 'edge-mods' }}

- name: Build and Push
uses: docker/build-push-action@v7
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
SptVersion=${{ steps.vars.outputs.sptversion }}
SptCommit=${{ steps.vars.outputs.commit }}
SptBuildTime=${{ steps.vars.outputs.buildtime }}
SptBuildType=${{ steps.vars.outputs.buildtype }}
cache-from: type=gha
cache-to: type=gha,mode=max
10 changes: 5 additions & 5 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.BYPASS_WORKFLOW_PAT || github.token }}

- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0
dotnet-version: 10.0

- name: Restore Tool Dependencies
run: dotnet tool install -g csharpier
Expand Down Expand Up @@ -61,7 +61,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.BYPASS_WORKFLOW_PAT || github.token }}

Expand Down Expand Up @@ -156,7 +156,7 @@ jobs:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.BYPASS_WORKFLOW_PAT || github.token }}

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
lfs: false

Expand All @@ -23,9 +23,9 @@ jobs:
git lfs pull

- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: 9.0
dotnet-version: 10.0

- name: Restore Dependencies
run: dotnet restore
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -424,8 +424,11 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

# Ceciler tool output
/Ceciler/

# Automatically generated file containing metadata on build
Libraries/SPTarkov.Server.Core/Utils/ProgramStatics.Generated.cs

# Not necessary to be included in the repo
Testing/**/Properties/launchSettings.json
Testing/**/Properties/launchSettings.json
Loading
Loading