Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
234 commits
Select commit Hold shift + click to select a range
fdcb3ba
chore(release): promote S1API to 3.1.0
ifBars Aug 1, 2026
089034d
fix(ci): use released API compatibility baseline
ifBars Aug 1, 2026
271404e
fix(phoneapp): wrap exit actions across runtimes
ifBars Aug 1, 2026
66a298f
fix(products): serialize icons and validate mixing profiles
ifBars Aug 1, 2026
eb36eb7
Merge pull request #163 from ifBars/release/3.1.0
ifBars Aug 1, 2026
00c782a
fix(ci): route coverage updates through pull requests
ifBars Aug 1, 2026
e1452f1
Merge pull request #164 from ifBars/agent/fix-coverage-pr-updates
ifBars Aug 1, 2026
ed08be4
fix(ci): dispatch checks for coverage pull requests
ifBars Aug 1, 2026
66fd0bc
Merge pull request #166 from ifBars/agent/fix-coverage-pr-check-dispatch
ifBars Aug 1, 2026
e55bd38
chore: update API coverage badge and history
github-actions[bot] Aug 1, 2026
dd8ce28
Merge pull request #165 from ifBars/automation/coverage-stable
ifBars Aug 1, 2026
0cb00b3
fix(ci): stop coverage metadata update loops
ifBars Aug 1, 2026
6cbacab
Merge pull request #168 from ifBars/agent/fix-coverage-update-loop
ifBars Aug 1, 2026
56d96f0
refactor(ci): remove coverage PR bootstrap dispatch
ifBars Aug 1, 2026
0f04d12
Merge pull request #169 from ifBars/agent/cleanup-coverage-pr-dispatch
ifBars Aug 1, 2026
7067ee5
feat(Trash): add station trash prefab registration
ifBars Aug 1, 2026
a9a7f46
docs(Products): refine authoring guidance
ifBars Aug 1, 2026
d8ef64b
fix(Trash): surface prefab registration collisions
ifBars Aug 1, 2026
407f921
Merge pull request #170 from ifBars/release/3.1.1
ifBars Aug 1, 2026
b5aa533
chore(Release): bump version to 3.1.1
ifBars Aug 1, 2026
5379d40
Merge pull request #171 from ifBars/agent/release-3.1.1-version
ifBars Aug 1, 2026
9c6e0ad
fix(phoneapp): preserve native home screen icons
ifBars Aug 1, 2026
b4938b5
Merge pull request #173 from ifBars/hotfix/3.1.1/phone-app-icon-subst…
ifBars Aug 1, 2026
229e7f9
chore(release): align stable version to 3.1.2
ifBars Aug 1, 2026
45181de
Merge pull request #175 from ifBars/agent/release-3.1.2-stable-version
ifBars Aug 1, 2026
724af17
fix(storage): restore capacities above default limit
ifBars Aug 2, 2026
82c0312
ci(release): publish NuGet from stable tags
ifBars Aug 2, 2026
68eb521
Merge pull request #177 from ifBars/releases/3.1.3
ifBars Aug 2, 2026
5c79f77
fix(entities): retain relationship unlock subscriptions
ifBars Aug 2, 2026
c870135
fix(suppliers): remove generated dead-drop stashes
ifBars Aug 2, 2026
45676c2
chore(release): bump version to 3.1.4
ifBars Aug 2, 2026
0075da2
fix(entities): preserve unlock event lifecycle behavior
ifBars Aug 2, 2026
a353cf8
fix(suppliers): validate dead drops before stash cleanup
ifBars Aug 2, 2026
ece4dd7
Merge pull request #182 from ifBars/fix/3.1.4-review
ifBars Aug 2, 2026
da37362
Merge pull request #181 from ifBars/releases/3.1.4
ifBars Aug 2, 2026
ea9f751
ci: fix Nexus publishing and add changelogs
DooDesch Aug 2, 2026
db020f8
docs: document Nexus changelog publishing
DooDesch Aug 2, 2026
850bd51
Merge pull request #184 from DooDesch-Mods/fix/nexus-beta10-changelogs
ifBars Aug 2, 2026
c98ab1c
fix(products): preserve mixing station interaction
ifBars Aug 3, 2026
4ef8e3e
fix(products): resolve native mixing ingredients
ifBars Aug 3, 2026
8a670ff
feat(products): complete custom product mixing outputs
ifBars Aug 3, 2026
72c9bf9
chore(release): bump version to 3.1.5
ifBars Aug 3, 2026
f73020d
Merge pull request #185 from ifBars/releases/3.1.5
ifBars Aug 3, 2026
f6016bd
fix(products): show custom visuals in mix discovery
ifBars Aug 3, 2026
0529d92
Merge pull request #186 from ifBars/releases/3.1.6
ifBars Aug 3, 2026
e256be0
fix(release): omit unsupported Nexus changelog
ifBars Aug 3, 2026
8d8e18a
Merge pull request #188 from ifBars/fix/nexus-changelog-release
ifBars Aug 3, 2026
bd66c4c
feat(suppliers): support persistent identity migration
ifBars Aug 3, 2026
6765333
fix(products): bound generated custom mix IDs
ifBars Aug 3, 2026
b5831e1
test(suppliers): cover persistent identity fallback
ifBars Aug 3, 2026
2233e42
fix(npc): restore civilian dialogue in employee fallback
ifBars Aug 3, 2026
91e8df8
fix(npcs): restore custom residence summons
ifBars Aug 3, 2026
d257600
Merge pull request #191 from ifBars/agent/fix-supplier-persistent-ide…
ifBars Aug 3, 2026
4c1efcc
Merge pull request #192 from ifBars/agent/fix-bounded-custom-mix-ids
ifBars Aug 3, 2026
18e79fe
Merge pull request #193 from ifBars/agent/fix-issue-190-civilian-dial…
ifBars Aug 3, 2026
7729ed0
Merge pull request #194 from ifBars/agent/fix-issue-189-residence-knock
ifBars Aug 3, 2026
d7cee0f
chore(release): bump S1API to 3.1.7
ifBars Aug 3, 2026
db421c9
Merge pull request #195 from ifBars/releases/3.1.7
ifBars Aug 3, 2026
d1896d2
fix(npcs): preserve residence summon dwell
ifBars Aug 4, 2026
da4fb1b
fix(npc): discard employee dialogue overrides
ifBars Aug 4, 2026
89c461b
fix(npcs): restrict summon handling to custom wrappers
ifBars Aug 4, 2026
56ff57b
Merge pull request #196 from ifBars/agent/fix-npc-residence-dwell
ifBars Aug 4, 2026
9894d12
Merge pull request #197 from ifBars/agent/fix-issue-190-dialogue-foll…
ifBars Aug 4, 2026
4d8e9ce
chore(release): bump version to 3.1.8
ifBars Aug 4, 2026
445586c
Merge pull request #198 from ifBars/releases/3.1.8
ifBars Aug 4, 2026
0fd5a53
fix(npc): add configuration diagnostics
ifBars Aug 4, 2026
5752ce9
refactor(npc): formally deprecate manual registration
ifBars Aug 4, 2026
2859a3d
refactor(npc): align accessory diagnostic conventions
ifBars Aug 4, 2026
e02d5df
Merge pull request #199 from ifBars/agent/npc-diagnostic-guardrails
ifBars Aug 4, 2026
0346a39
feat(console): let mods list the commands registered through S1API
DooDesch Aug 4, 2026
6bccf04
fix(console): hand out a read-only view that stays read-only
DooDesch Aug 4, 2026
f6e550c
style(console): match the file's comment style
DooDesch Aug 4, 2026
5b95b03
Merge pull request #200 from DooDesch-Mods/feat/expose-registered-con…
ifBars Aug 5, 2026
c0c48a9
fix(npc): defer invisible state until network spawn
ifBars Aug 5, 2026
91de214
Merge pull request #204 from ifBars/agent/fix-issue-203-nonphysical-n…
ifBars Aug 5, 2026
068bd07
docs(npc): clarify custom voice inheritance
ifBars Aug 5, 2026
2273f0b
Merge pull request #205 from ifBars/agent/fix-issue-202-custom-npc-vo…
ifBars Aug 5, 2026
ed5b045
fix(npc): scope accessory diagnostics
ifBars Aug 5, 2026
cba7ffb
fix(npc): trust registered custom accessories
ifBars Aug 5, 2026
f484aa2
fix(npc): normalize accessory diagnostic registry keys
ifBars Aug 5, 2026
44dacb8
Merge pull request #208 from ifBars/agent/fix-avatar-accessory-diagno…
ifBars Aug 5, 2026
b4986ea
docs(dialogue): document native dialogue behaviour
ifBars Aug 5, 2026
217ac72
Merge pull request #209 from ifBars/agent/docs-native-dialogue-reference
ifBars Aug 5, 2026
e7bac6e
chore(release): prepare 3.1.9
ifBars Aug 5, 2026
9362f9a
Merge pull request #210 from ifBars/releases/3.1.9
ifBars Aug 5, 2026
4eea2ba
Integrate NPC schedule with behaviour priority
HazDS Aug 6, 2026
46db9b2
Fix NPC walk speed
HazDS Aug 6, 2026
4a220fe
Clean up Enable method by removing comments
ifBars Aug 6, 2026
1e75445
Merge pull request #211 from HazDS/haz/npcstopfix
ifBars Aug 6, 2026
d174eaf
chore: update API coverage badge and history
github-actions[bot] Aug 6, 2026
1381528
Merge pull request #187 from ifBars/automation/coverage-stable
ifBars Aug 6, 2026
0244e01
fix(products): allow clients to finish manifest loading
ifBars Aug 7, 2026
6f1dce2
fix(npc): restore dealer lifecycle and mugshots
ifBars Aug 7, 2026
f801f65
Merge branch 'stable' into fix/custom-product-manifest-timeout
ifBars Aug 7, 2026
1bd50f6
fix(npc): address dealer lifecycle review feedback
ifBars Aug 7, 2026
f132d81
Merge pull request #213 from ifBars/fix/custom-dealer-lifecycle
ifBars Aug 7, 2026
a8203f2
Merge branch 'stable' into fix/custom-product-manifest-timeout
ifBars Aug 7, 2026
2765a2c
fix(products): preserve queued manifest joins
ifBars Aug 7, 2026
3402cfe
fix(products): bound client manifest deadline
ifBars Aug 7, 2026
aeb0658
Merge pull request #212 from ifBars/fix/custom-product-manifest-timeout
ifBars Aug 7, 2026
91af5b1
chore(release): bump version to 3.1.10
ifBars Aug 7, 2026
4dbdfa4
Merge pull request #214 from ifBars/releases/3.1.10
ifBars Aug 7, 2026
575c16f
chore(diffuin): address #217
diffuin[bot] Aug 8, 2026
60cbc4a
Merge pull request #219 from ifBars/diffuin/217-cdaeca41
ifBars Aug 8, 2026
95da76f
fix(npc): align custom customer navigation
ifBars Aug 8, 2026
009f64e
fix(npc): route requesting customers to property entrances
ifBars Aug 8, 2026
2131102
Merge pull request #220 from ifBars/agent/fix-issue-218-customer-boun…
ifBars Aug 8, 2026
24fb947
feat(items): expose clothing metadata catalog
ifBars Aug 8, 2026
24456c0
style(items): align clothing metadata contracts
ifBars Aug 8, 2026
4c3b30a
Merge pull request #225 from ifBars/agent/feat-clothing-metadata
ifBars Aug 8, 2026
1e5d0ef
feat(weather): expose current weather state API
ifBars Aug 8, 2026
5a989de
Merge pull request #226 from ifBars/diffuin/222-367a7553
ifBars Aug 8, 2026
2b84924
fix(tests): prevent IL2CPP wrapper finalizer crashes
ifBars Aug 8, 2026
335c3bf
Merge pull request #228 from ifBars/agent/fix-il2cpp-test-finalizers
ifBars Aug 8, 2026
9ad5fa3
fix(coverage): exclude internal game namespaces
ifBars Aug 8, 2026
1218fcd
chore(release): bump version to 3.1.11
ifBars Aug 8, 2026
e8565a9
Merge pull request #229 from ifBars/releases/3.1.11
ifBars Aug 8, 2026
2c82108
chore: update API coverage badge and history
github-actions[bot] Aug 8, 2026
4d94437
Merge pull request #227 from ifBars/automation/coverage-stable
ifBars Aug 8, 2026
fc5de20
chore(diffuin): address #223
diffuin[bot] Aug 8, 2026
5c58c21
fix(dialogue): tighten handler lifecycle behavior
ifBars Aug 9, 2026
30e2f68
Merge pull request #231 from ifBars/diffuin/223-ba83bda8
ifBars Aug 9, 2026
4fa26ef
feat(items): add custom furniture API
ifBars Aug 9, 2026
dc46e70
fix(items): address furniture review findings
ifBars Aug 9, 2026
d07f921
fix(items): harden furniture icon cleanup
ifBars Aug 9, 2026
5d62ba0
Merge pull request #233 from ifBars/feat/issue-232-custom-furniture
ifBars Aug 9, 2026
57ec63a
chore: update API coverage badge and history
github-actions[bot] Aug 9, 2026
f761c08
chore(release): prepare 3.1.12
ifBars Aug 9, 2026
3a95f2a
docs(items): clarify buildable ghost visuals
ifBars Aug 9, 2026
6c6e3c1
Merge pull request #234 from ifBars/automation/coverage-stable
ifBars Aug 9, 2026
7b9613b
Merge pull request #235 from ifBars/releases/3.1.12
ifBars Aug 9, 2026
d5a5b19
docs(contributing): clarify contributor prerequisites (#230)
a0ngo Aug 9, 2026
a0c4965
fix(phoneapp): hide default notification badge
ifBars Aug 10, 2026
570e057
fix(items): restore the pre-3.1 CreateItem overload
DooDesch Aug 10, 2026
bce33e7
fix(items): preserve legacy CreateItem call shapes
ifBars Aug 11, 2026
3238cb7
Merge pull request #252 from DooDesch-Mods/fix/itemcreator-binary-compat
ifBars Aug 11, 2026
437747e
Merge pull request #250 from ifBars/agent/fix-phone-app-notification-…
ifBars Aug 11, 2026
198149d
chore(diffuin): address #251
diffuin[bot] Aug 11, 2026
5cbac41
chore(diffuin): address #253
diffuin[bot] Aug 11, 2026
d2b5f9a
chore(diffuin): address #246
diffuin[bot] Aug 11, 2026
4b1c916
Merge pull request #253 from ifBars/diffuin/251-104845f1
ifBars Aug 11, 2026
5658509
chore(diffuin): address #245
diffuin[bot] Aug 11, 2026
2c97a2e
Merge pull request #254 from ifBars/diffuin/246-a86434e4
ifBars Aug 11, 2026
7cca024
Merge pull request #255 from ifBars/diffuin/245-6068670d
ifBars Aug 11, 2026
51b5c3f
chore(release): prepare 3.1.13
ifBars Aug 11, 2026
95105b6
chore(release): prepare 3.1.13 (#256)
ifBars Aug 11, 2026
59ee053
fix(npc): keep behaviour objects active
ifBars Aug 11, 2026
6896831
fix(runtime): normalize cross-runtime member access
ifBars Aug 11, 2026
97c3dfa
fix(npc): address dealer review findings
ifBars Aug 11, 2026
7b03732
Merge pull request #258 from ifBars/releases/3.1.14
ifBars Aug 11, 2026
a849e27
chore(diffuin): address #259
diffuin[bot] Aug 11, 2026
1679a38
fix(npc): restore custom inventory slot initialization
ifBars Aug 12, 2026
1ba8b5d
Merge pull request #261 from ifBars/diffuin/259-7ebc2622
ifBars Aug 12, 2026
23cf7a4
chore(diffuin): address #260
diffuin[bot] Aug 12, 2026
693c5d6
fix(npc): complete persistence restoration
ifBars Aug 12, 2026
dab5bd3
Merge pull request #262 from ifBars/diffuin/260-d1a3bdda
ifBars Aug 12, 2026
165ed5e
chore(release): prepare 3.1.15
ifBars Aug 12, 2026
2123922
docs(release): clarify curated note fallback
ifBars Aug 12, 2026
87acc03
Merge pull request #263 from ifBars/releases/3.1.15
ifBars Aug 12, 2026
5bf5218
chore(diffuin): address #236
diffuin[bot] Aug 12, 2026
6c492fa
chore(diffuin): address #242
diffuin[bot] Aug 12, 2026
5642b44
chore(diffuin): address #265
diffuin[bot] Aug 12, 2026
392a5fa
chore(diffuin): address #265
diffuin[bot] Aug 12, 2026
f115177
Merge pull request #265 from ifBars/diffuin/242-21569d53
ifBars Aug 13, 2026
0c64e5b
chore(diffuin): address #244
diffuin[bot] Aug 13, 2026
c3d31e4
chore(diffuin): address #243
diffuin[bot] Aug 13, 2026
6ddb94d
chore(diffuin): address #241
diffuin[bot] Aug 14, 2026
3338967
refactor(Entities): simplify NPC vehicle event bridges
ifBars Aug 14, 2026
e3d307f
Merge branch 'agent/address-pr267' into agent/address-pr266
ifBars Aug 14, 2026
c3e9771
fix(Entities): initialize vehicle event tracking lazily
ifBars Aug 14, 2026
636c5ac
refactor(Entities): simplify NPC awareness event bridges
ifBars Aug 14, 2026
0dbc5bc
Merge branch 'agent/address-pr267' into agent/address-pr266
ifBars Aug 14, 2026
65b897c
test(Entities): keep awareness contracts runtime-neutral
ifBars Aug 14, 2026
e6187d4
fix(Entities): remove awareness listeners on IL2CPP
ifBars Aug 14, 2026
0954874
Merge pull request #267 from ifBars/diffuin/243-29624926
ifBars Aug 14, 2026
0e84659
Merge pull request #266 from ifBars/diffuin/244-2c9fc64e
ifBars Aug 14, 2026
836fa25
fix(NPC): hide locked dealer conversations
ifBars Aug 14, 2026
904d3d2
Merge branch 'stable' into diffuin/236-18fb5df1
ifBars Aug 14, 2026
6aba7f9
fix(NPC): make dealer conversation hooks idempotent
ifBars Aug 14, 2026
04606c4
fix(Building): preserve furniture variants across runtimes
ifBars Aug 14, 2026
fb53d87
test(Vehicles): keep IL2CPP catalog tests host-safe
ifBars Aug 14, 2026
942287b
Merge pull request #268 from ifBars/diffuin/241-e7a4f147
ifBars Aug 14, 2026
8cd7ddb
Merge pull request #271 from ifBars/agent/fix-locked-dealer-messages
ifBars Aug 14, 2026
26138d3
Merge pull request #264 from ifBars/diffuin/236-18fb5df1
ifBars Aug 14, 2026
b0b831c
chore: update API coverage badge and history
github-actions[bot] Aug 14, 2026
5f98162
Merge pull request #274 from ifBars/automation/coverage-stable
ifBars Aug 14, 2026
3f7884b
chore(diffuin): address #270
diffuin[bot] Aug 15, 2026
896ae12
chore(diffuin): address #276
diffuin[bot] Aug 15, 2026
9f8cb73
Merge pull request #276 from ifBars/diffuin/270-69623915
ifBars Aug 15, 2026
f44fdfc
fix(npc): finalize client-spawned custom NPCs
ifBars Aug 15, 2026
21eadb8
test(npc): cover client hydration readiness
ifBars Aug 15, 2026
bf0ad41
Merge pull request #277 from ifBars/agent/fix-275-client-npc-contacts
ifBars Aug 15, 2026
81e957b
fix(npc): bridge contract events on IL2CPP
ifBars Aug 15, 2026
d3c7e3d
Merge pull request #278 from ifBars/agent/fix-273-il2cpp-contract-del…
ifBars Aug 15, 2026
4bb5295
fix(npc): tolerate removed region unlock member
ifBars Aug 15, 2026
1cc6972
Merge pull request #279 from ifBars/agent/fix-272-npc-region-member
ifBars Aug 15, 2026
0f74c8d
feat(npc): drive prefab roles from NPC properties
ifBars Aug 15, 2026
c5bd6ee
feat(casino): expose game state and lifecycle events
ifBars Aug 15, 2026
746c775
fix(casino): address review feedback
ifBars Aug 15, 2026
1564464
Merge pull request #281 from ifBars/agent/feat-239-casino-api
ifBars Aug 15, 2026
c5bf753
fix(npc): address role review feedback
ifBars Aug 16, 2026
4f58225
chore(diffuin): address #237
diffuin[bot] Aug 16, 2026
1896ee6
test(npc): isolate readiness state coverage
ifBars Aug 16, 2026
1f1b382
Merge pull request #280 from ifBars/agent/feat-249-npc-role-properties
ifBars Aug 16, 2026
2ccc3c5
fix(temperature): harden public API contracts
ifBars Aug 16, 2026
6618a60
Merge pull request #283 from ifBars/diffuin/237-983faff4
ifBars Aug 16, 2026
e903fcc
chore: update API coverage badge and history
github-actions[bot] Aug 16, 2026
907a26a
Merge pull request #282 from ifBars/automation/coverage-stable
ifBars Aug 16, 2026
55cf43a
chore(diffuin): address #240
diffuin[bot] Aug 16, 2026
5841f5f
feat(interaction): add native prompt builder
ifBars Aug 16, 2026
6a2ade9
fix(interaction): make failed prompt builds retryable
ifBars Aug 16, 2026
beb020a
Merge pull request #285 from ifBars/feature/interaction-prompt-builder
ifBars Aug 16, 2026
4536615
chore(diffuin): address #221
diffuin[bot] Aug 16, 2026
8da02e5
fix(trash): preserve event subscriptions across wrappers
ifBars Aug 16, 2026
29273ad
Merge pull request #284 from ifBars/diffuin/240-348c2029
ifBars Aug 16, 2026
62d0d89
fix(audio): harden jukebox controls and cache lifecycle
ifBars Aug 16, 2026
25486ad
Merge pull request #286 from ifBars/diffuin/221-37391a1f
ifBars Aug 16, 2026
6528995
chore: update API coverage badge and history
github-actions[bot] Aug 16, 2026
cfb61c9
Merge pull request #287 from ifBars/automation/coverage-stable
ifBars Aug 16, 2026
d68b012
chore(release): prepare 3.2.0
ifBars Aug 16, 2026
633d19f
Merge pull request #288 from ifBars/releases/3.2.0
ifBars Aug 16, 2026
1354b99
fix(npc): bound custom type discovery
ifBars Aug 16, 2026
f8ab166
chore(diffuin): address #289
diffuin[bot] Aug 26, 2026
62d11ed
Merge pull request #290 from ifBars/diffuin/289-2d87c4ca
ifBars Aug 26, 2026
1bbf3f0
Merge pull request #289 from ifBars/fix/npc-bounded-type-scan
ifBars Aug 28, 2026
51f6ff4
fix(coverage): preserve semantic wrapper provenance
ifBars Aug 29, 2026
51fa37d
docs(coverage): list all match strategies
ifBars Aug 29, 2026
ee7e2d0
Merge pull request #299 from ifBars/agent/fix-291-coverage-provenance
ifBars Aug 29, 2026
be2597a
feat(deliveries): expose loading dock state
ifBars Aug 29, 2026
7dc810c
Merge pull request #302 from ifBars/agent/feat-293-loading-dock-api
ifBars Sep 4, 2026
ea88345
fix(beta): support Schedule I 0.4.7
ifBars Sep 19, 2026
065c79e
ci(beta): refresh game assembly caches
ifBars Sep 19, 2026
1184221
ci(beta): compare API with shipped release
ifBars Sep 19, 2026
b4b6f34
fix(beta): restore Mono custom NPC initialization
ifBars Sep 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/api-compat-suppressions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
Schedule I moved ExitAction between native namespaces across game updates.
S1API replaces the runtime-specific signature with S1API.PhoneApp.ExitAction
so phone apps retain one public API across Mono and IL2CPP.
-->
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:S1API.PhoneApp.PhoneApp.Exit(ScheduleOne.ExitAction)</Target>
</Suppression>
</Suppressions>
27 changes: 27 additions & 0 deletions .github/release-notes/3.1.15.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Custom NPC Inventory Persistence

- Custom NPC primary inventories now initialize their native slot collection before saved items are restored, so items given to custom customers and dealers retain their identity, quantity, and slot position across save and reload ([#261](https://github.com/ifBars/S1API/pull/261)).
- Dealer overflow restoration remains separate from primary inventory hydration, and base-game dealers keep their existing load behavior ([#261](https://github.com/ifBars/S1API/pull/261)).

## Custom NPC Relationships and Deals

- Custom NPCs now derive a stable native GUID from their existing persistent identity and register before accepted contracts are loaded. Newly scheduled custom-customer deals therefore resolve to the same NPC after a reload ([#262](https://github.com/ifBars/S1API/pull/262)).
- Saved relationship values and unlock state now survive deferred custom-NPC spawning, including explicit zero relationship values and both direct and recommendation unlock paths ([#262](https://github.com/ifBars/S1API/pull/262)).
- Loader phases reuse the prepared custom NPC instance and initialize inactive customer deal-attendance state before assigning restored contracts, preventing prefab defaults or incomplete runtime caches from replacing saved state ([#262](https://github.com/ifBars/S1API/pull/262)).

## Compatibility and Validation

- Preserved public API shape, existing custom NPC identity IDs, save schemas, network payloads, dealer overflow behavior, and base-game NPC loading.
- Validated 3.1.15 with zero-warning Mono and IL2CPP builds, 575 passing Mono tests, 564 passing IL2CPP tests, documentation coverage, ApiCompat, and the hosted coverage analyzer.
- Verified live Mono and IL2CPP save-to-menu-to-reload flows for custom inventory contents, customer and dealer relationships, unlock state, and accepted-contract ownership.
- Contracts already saved with a pre-3.1.15 random custom-NPC GUID cannot be migrated because the native contract payload contains the customer GUID but not the custom NPC identity ID. Newly saved and future contracts use the stable identity.

## Contributors

- @Diffuin: [custom NPC inventory restoration](https://github.com/ifBars/S1API/pull/261) and [custom NPC deal and relationship persistence](https://github.com/ifBars/S1API/pull/262).
- @ifBars: dual-runtime remediation, live persistence validation, and 3.1.15 release preparation for [#261](https://github.com/ifBars/S1API/pull/261) and [#262](https://github.com/ifBars/S1API/pull/262).

## Release Links

- [Download S1API-Forked-3.1.15.zip](https://github.com/ifBars/S1API/releases/download/v3.1.15/S1API-Forked-3.1.15.zip)
- [Full changelog](https://github.com/ifBars/S1API/compare/v3.1.14...v3.1.15)
34 changes: 34 additions & 0 deletions .github/release-notes/3.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## New Managed APIs

- Build customizable variants of native grid and surface furniture while preserving placement defaults, isolated materials, stored and ghost visuals, and generated icons ([#264](https://github.com/ifBars/S1API/pull/264)).
- Inspect an NPC's current building, awareness changes, and vehicle entry or exit events, and read native vehicle color metadata through managed wrappers ([#265](https://github.com/ifBars/S1API/pull/265), [#266](https://github.com/ifBars/S1API/pull/266), [#267](https://github.com/ifBars/S1API/pull/267), [#268](https://github.com/ifBars/S1API/pull/268)).
- Declare customer, dealer, and supplier roles through NPC properties so prefab configuration follows the selected capabilities ([#280](https://github.com/ifBars/S1API/pull/280)).
- Discover blackjack, Ride the Bus, and slot-machine games; read immutable state snapshots; and subscribe to round and spin lifecycle events ([#281](https://github.com/ifBars/S1API/pull/281)).
- Create and query native temperature emitters with cross-runtime managed events, validation, snapshots, and unit helpers ([#283](https://github.com/ifBars/S1API/pull/283)).
- Inspect native trash containers, subscribe to content and level changes, and invoke the server-authoritative native bagging flow ([#284](https://github.com/ifBars/S1API/pull/284)).
- Attach configurable native interaction prompts to mod-owned objects with managed lifecycle callbacks, runtime setters, and disposal ([#285](https://github.com/ifBars/S1API/pull/285)).
- Discover placed jukeboxes, inspect immutable track and playback state, subscribe to changes, and use the native playback, volume, shuffle, repeat, synchronization, and track-selection controls ([#286](https://github.com/ifBars/S1API/pull/286)).

## Fixes and Runtime Compatibility

- Hide dealer conversations until their relationship requirements are met, while keeping conversation hooks idempotent ([#271](https://github.com/ifBars/S1API/pull/271)).
- Remove the unusable Casino building identifier from the NPC building registry ([#276](https://github.com/ifBars/S1API/pull/276)).
- Finalize custom NPCs correctly on multiplayer clients, bridge customer contract events on IL2CPP, and tolerate the base game's removed region-unlock member ([#277](https://github.com/ifBars/S1API/pull/277), [#278](https://github.com/ifBars/S1API/pull/278), [#279](https://github.com/ifBars/S1API/pull/279)).
- Harden cross-wrapper event ownership and cleanup for awareness, vehicle, trash-container, and jukebox APIs, including IL2CPP delegate lifecycles and destroyed native objects ([#266](https://github.com/ifBars/S1API/pull/266), [#267](https://github.com/ifBars/S1API/pull/267), [#284](https://github.com/ifBars/S1API/pull/284), [#286](https://github.com/ifBars/S1API/pull/286)).

## Compatibility and Validation

- The 3.2.0 surface is additive relative to 3.1.15. Existing public contracts, stable identifiers, save schemas, and network payloads remain unchanged.
- New controls continue to use the game's native authority, replication, synchronization, and persistence paths; consumer mods remain responsible for their own multiplayer authorization where the native API does not provide it.
- Validated the release candidate with zero-warning Mono and IL2CPP builds, 707 passing Mono tests, 693 passing IL2CPP tests, 82.31% public API documentation coverage, and no ApiCompat breaks against 3.1.15. The hosted coverage analyzer remains a required PR gate.
- The milestone's furniture, NPC, casino, temperature, trash, interaction-prompt, and jukebox features received targeted Mono and IL2CPP runtime validation during development. No proprietary game assemblies, generated wrappers, saves, logs, or test probes are included in this release.

## Contributors

- @Diffuin: native furniture variants, NPC building and event APIs, vehicle color metadata, temperature emitters, trash containers, jukebox controls, and the Casino building correction in [#264](https://github.com/ifBars/S1API/pull/264), [#265](https://github.com/ifBars/S1API/pull/265), [#266](https://github.com/ifBars/S1API/pull/266), [#267](https://github.com/ifBars/S1API/pull/267), [#268](https://github.com/ifBars/S1API/pull/268), [#276](https://github.com/ifBars/S1API/pull/276), [#283](https://github.com/ifBars/S1API/pull/283), [#284](https://github.com/ifBars/S1API/pull/284), and [#286](https://github.com/ifBars/S1API/pull/286).
- @ifBars: integration and dual-runtime remediation across the milestone, dealer and custom-NPC compatibility fixes, NPC role properties, casino state APIs, and interaction prompts in [#271](https://github.com/ifBars/S1API/pull/271), [#277](https://github.com/ifBars/S1API/pull/277), [#278](https://github.com/ifBars/S1API/pull/278), [#279](https://github.com/ifBars/S1API/pull/279), [#280](https://github.com/ifBars/S1API/pull/280), [#281](https://github.com/ifBars/S1API/pull/281), and [#285](https://github.com/ifBars/S1API/pull/285).

## Release Links

- [Download S1API-Forked-3.2.0.zip](https://github.com/ifBars/S1API/releases/download/v3.2.0/S1API-Forked-3.2.0.zip)
- [Full changelog](https://github.com/ifBars/S1API/compare/v3.1.15...v3.2.0)
16 changes: 16 additions & 0 deletions .github/release-notes/3.2.1-beta.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Schedule I 0.4.7 beta compatibility

- Restored S1API startup on both the Mono `alternate-beta` and IL2CPP `beta` game branches.
- Migrated dialogue, sleep/time, player-data synchronization, NPC movement, clothing, and character-creator integrations to the 0.4.7 native APIs.
- Adapted legacy avatar settings through the game's new naked-appearance and outfit pipeline.
- Kept removed avatar preview and accessory-mugshot helpers fail-safe while the replacement renderer is still in beta.

## Compatibility and validation

- Built against Schedule I 0.4.7f5 Mono and IL2CPP assemblies.
- This is a GitHub-only prerelease for beta testing. It is not published to NuGet, Nexus Mods, or Thunderstore.
- Tracks [issue #305](https://github.com/ifBars/S1API/issues/305).

## Downloads

- [Download S1API-Forked-3.2.1-beta.1.zip](https://github.com/ifBars/S1API/releases/download/v3.2.1-beta.1/S1API-Forked-3.2.1-beta.1.zip)
Loading
Loading