Skip to content

Releases: ifBars/S1API

S1API 3.2.1-beta.8

S1API 3.2.1-beta.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Oct 01:01
f65ae40

Phone apps and item icons

  • Restored discovery of mods built against older S1API versions. This also restores Mods App on the current game beta. See PR #333.
  • Restored item icon capture after the game's preview layer rename, including the Forklift & Pallets pallet icon. IconFactory now honors the requested image size and retains its default of 512 pixels. See PR #345.
  • Phone app discovery and initialization now report progress with normal logging. Missing constructors produce a warning, and initialization failures include the full exception and underlying cause while allowing other apps to initialize. See PR #346.

Other unreleased beta fixes

  • Custom accessories now receive their own avatar objects and retain their texture and tint. Typed resource lookups reject incompatible assets at the same path. See PR #332.
  • Dealer and supplier NPCs now have framework data before ConfigurePrefab, allowing identity, icon, and voice configuration. See PR #334.
  • Packaging icon patches select the game's exact method signature, allowing them to bind alongside Polyfill's additional overload. See PR #336.
  • The contacts app skips NPCs whose IDs cannot be read instead of repeatedly failing while waiting for custom NPCs. See PR #337.
  • Clarified the supported use of the existing Saveable persistence base and Registerable infrastructure class without moving or changing either type. See PR #344.

Compatibility and validation

Existing public signatures, namespaces, save identifiers, and network payload formats are unchanged.

The combined release candidate passed 775 Mono and 749 IL2CPP contract tests. Live validation of the icon and phone diagnostics fixes passed on Mono 0.4.7f7 and IL2CPP 0.4.7f9. Mods App's home icon, manager screen, and open/close behavior, plus the Forklift & Pallets pallet icon, were checked on IL2CPP 0.4.7f9; those two consumer mods were not checked on Mono.

This is a GitHub-only prerelease for the Schedule I game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.

Contributors and links

Thanks to @r-melvin for #332, #333, #334, #336, and #337, and @ifBars for #344, #345, and #346.

Full changes since beta.7

Download

S1API-Forked-3.2.1-beta.8.zip

S1API 3.2.1-beta.7

S1API 3.2.1-beta.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Sep 08:04
db1de39

Changes for Schedule I 0.4.7f6

  • Fixed custom phone contacts being rejected after returning to the menu and loading again when their avatar body was culled. Fixes #319.
  • Fixed duplicate Messages entries for custom contacts on the first load. Existing conversations and message history are retained through network initialization. Fixes #327.
  • Client contacts now update their conversation registration after network spawn. Rebinding also restores missing registrations and preserves entries owned by other contacts.
  • Added opt-in external hosting for phone and TV apps. Apps can create independent display sessions without moving their original device UI. ExternalAppCatalog.Refresh(host) updates hosting eligibility, and the icon resolver includes file icons and sprites selected through SetIconSprite. See PR #328.

Compatibility and validation

Existing public signatures, NPC save identifiers, and network payload formats are unchanged. External hosting is additive and requires app opt-in.

The combined candidate passed 740 Mono and 720 IL2CPP contract tests. The original contact fixes also passed live first-load, menu-reload, and saved-reload checks on both runtimes. Review follow-ups have build and contract coverage; additional live icon and two-peer checks were interrupted before their feature assertions and are not claimed as passing.

This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.

Download

S1API-Forked-3.2.1-beta.7.zip

S1API 3.2.1-beta.6

S1API 3.2.1-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Sep 05:59
b29708b

Fixes for Schedule I 0.4.7f6

  • Custom phone contacts now show the correct sender information on the first save load, including when the native contact lookup cannot find a sender yet. Fixes #320 through PR #322.
  • GameLifecycle.OnLoadComplete listeners registered before entering the main scene are retained across a return to the menu and do not fire twice on the next load. Fixes #321 through PR #323.
  • Texts sent by custom phone contacts during OnLoadComplete survive the delayed NPC network spawn and are written to NPCs.json on an ordinary save. Fixes #324 through PR #325.

Compatibility and validation

  • No public S1API signatures, save identifiers, or network payloads changed.
  • The contact and lifecycle fixes were reproduced and checked in the game on Mono and IL2CPP. For the conversation fix, three contacts retained their messages through spawn and save in both runtimes; a fresh IL2CPP load retained the saved history through another spawn and save.
  • The 3.2.1-beta.6 source builds without warnings or errors, with 724 Mono and 710 IL2CPP contract tests passing.
  • This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.

Known issue

  • #319, a reported VOEmitter rejection on a second load, remains under investigation. It has not reproduced with the available local fixture and is not claimed as fixed here.

Download

S1API 3.2.1-beta.5

S1API 3.2.1-beta.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 06:24
39be958

Fixes for Schedule I 0.4.7f6

  • Opening Settings → Gamepad no longer hangs when a loading dock changes its assigned vehicle and no mod is listening for that event.
  • Plain custom NPC contacts no longer crash shortly after a save loads. Both the legacy constructor and ConfigurePrefab paths now let native NPC.Awake initialize their data once.

Compatibility and validation

  • No public S1API signatures, save identifiers, or network formats changed.
  • The two-contact repro stayed in playable gameplay after load on 0.4.7f6 Mono (Steam build 25439857) and IL2CPP (25439817). The Gamepad panel opened on IL2CPP. Both contract suites passed.
  • This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.
  • Fixes issue #314 with PR #316, and issue #315 with PR #317.

Download

S1API 3.2.1-beta.4

S1API 3.2.1-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 01:51
2b49203

Plain custom NPCs on Schedule I 0.4.7f6

  • Fix both the legacy constructor and ConfigurePrefab path failing after f6 removed ConsumeProductBehaviour.onConsumeDone.
  • Keep the legacy event initialization for older game builds that still expose it.

Compatibility and validation

  • No S1API public signatures, save identifiers, or network formats changed.
  • Both contact paths registered after loading a save on local 0.4.7f6 Mono (Steam build 25439857) and IL2CPP (25439817) installs. The Mono and IL2CPP contract suites passed.
  • This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.
  • Fixes issue #309 with PR #311.

Download

S1API 3.2.1-beta.3

S1API 3.2.1-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 00:13
291d7de

Custom NPCs on the Schedule I 0.4.7 beta

  • Fix plain custom NPCs failing to construct when the native template has no framework data object. This restores both the legacy four-argument constructor and the current ConfigurePrefab/WithIdentity path.

Compatibility and validation

  • Public API signatures, save identifiers, and network payloads are unchanged.
  • Both contact paths registered and were found after loading a save in local 0.4.7f5 Mono and IL2CPP beta builds. The Mono and IL2CPP contract suites passed. The reported 0.4.7f6 build was not available for local gameplay validation.
  • This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.
  • Addresses issue #309.

Downloads

S1API 3.2.1-beta.2

S1API 3.2.1-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 03:24
9d9d077

Avatar rendering on the Schedule I 0.4.7 beta

  • Restore generated NPC mugshots and accessory icons through a detached avatar and portrait camera.
  • Keep portraits facing forward, with settled animation and appearance state. Remove inherited attachments and prevent player look targets, blinking, and distance impostors from affecting captures.
  • Restore the NPC appearance workbench, including native appearance import, full-body framing, pose controls, and reset.
  • Reset copied body-shape caches so newly applied clothing fits the preview body.
  • Resolve legacy hair, clothing, face-layer, and accessory resources through typed Mono and IL2CPP APIs.
  • Restore current player and active character-creator appearance getters.

Compatibility and validation

  • Existing public method signatures and explicit NPC icon precedence are preserved.
  • Built against the Schedule I 0.4.7f5 Mono and IL2CPP beta assemblies. Rendered captures were checked in both runtimes, including the requested accessory, forward-facing portraits, clothing, workbench framing, and pose reset.
  • Updated the appearance-customization and NPC workbench documentation.
  • This is a GitHub-only prerelease for the game beta. It does not publish to NuGet, Nexus Mods, or Thunderstore.
  • Tracks issue #305.

Downloads

S1API 3.2.1-beta.1

S1API 3.2.1-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 02:57
9662d8e

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.

Downloads

S1API 3.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 10:23
633d19f

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).
  • Inspect an NPC's current building, awareness changes, and vehicle entry or exit events, and read native vehicle color metadata through managed wrappers (#265, #266, #267, #268).
  • Declare customer, dealer, and supplier roles through NPC properties so prefab configuration follows the selected capabilities (#280).
  • Discover blackjack, Ride the Bus, and slot-machine games; read immutable state snapshots; and subscribe to round and spin lifecycle events (#281).
  • Create and query native temperature emitters with cross-runtime managed events, validation, snapshots, and unit helpers (#283).
  • Inspect native trash containers, subscribe to content and level changes, and invoke the server-authoritative native bagging flow (#284).
  • Attach configurable native interaction prompts to mod-owned objects with managed lifecycle callbacks, runtime setters, and disposal (#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).

Fixes and Runtime Compatibility

  • Hide dealer conversations until their relationship requirements are met, while keeping conversation hooks idempotent (#271).
  • Remove the unusable Casino building identifier from the NPC building registry (#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, #278, #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, #267, #284, #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, #265, #266, #267, #268, #276, #283, #284, and #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, #277, #278, #279, #280, #281, and #285.

Release Links

S1API 3.1.15

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:21
87acc03

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).
  • Dealer overflow restoration remains separate from primary inventory hydration, and base-game dealers keep their existing load behavior (#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).
  • 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).
  • 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).

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

Release Links