Skip to content

feat: Speaker Api: Part Two#762

Open
MS-crew wants to merge 105 commits intoExMod-Team:devfrom
MS-crew:SpeakerApiRereborn
Open

feat: Speaker Api: Part Two#762
MS-crew wants to merge 105 commits intoExMod-Team:devfrom
MS-crew:SpeakerApiRereborn

Conversation

@MS-crew
Copy link
Copy Markdown

@MS-crew MS-crew commented Feb 27, 2026

Description

Describe the changes

  • Added automatic controller ID assignment via GetNextFreeControllerId()
  • Added object pooling system (Pool, Rent(), ReturnToPool(), PlayFromPool()) for improved server performance
  • Added PlaybackProgress propertie
  • Fixed Null Referance Exception for TargetPlayers and Predicate in SendPacket
  • Magic things change to consts
  • Added Fade Effect
  • Added Time Based Events
  • Added Track Queue
  • Added Static Events For Global non-object-oriented Usages
  • Added AudioPlaybackOptions struct for more clean Play method and not breaking things in future
  • Added PreferredId logic in Rent for avoiding unnecessary network sync wait
  • Added onComplete Action for FadeVolume method
  • Fixed memory leak for events in ReturnToPool
  • Added RestartTrack method
  • Open api supporting all IPcmSources
  • Add URL wav source
  • Add Player Stream Source

What is the current behavior? (You can also link to an open issue here)
Tittle

What is the new behavior? (if this is a feature change)
Read

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No

Other information:

Example Audio Time Event :

speaker.AddTimeEvent(timeInSeconds: 19, action: () => Map.TurnOffAllLights(99999999));
speaker.AddTimeEvent(timeInSeconds: 40, action: () => { Map.TurnOffAllLights(0); Map.Broadcast(new ("In The Night!")); });
timebased.mp4

Example Fadings :

fadein.mp4
2026-03-21_14-48-20.mp4

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentations

Submission checklist

  • I have checked the project can be compiled
  • I have tested my changes and it worked as expected

Patches (if there are any changes related to Harmony patches)

  • I have checked no IL patching errors in the console

Other

  • Still requires more testing

@github-actions github-actions bot added the API label Feb 27, 2026
@MS-crew MS-crew changed the title feat: Automatic id assign / more log & less throw feat: Speaker Api Automatic id assign / more log & less throw Feb 27, 2026
@Someone-193
Copy link
Copy Markdown

if we're gonna test error handling for the speaker api, could you at least check each type of error and make sure it doesnt spam the log if an issue happens then let us know you've tested all the errors?

@MS-crew MS-crew changed the title feat: Speaker Api Automatic id assign / more log & less throw feat: Speaker Api Automatic id assign & Added PlayOneShot method & more log less throw Mar 1, 2026
@MS-crew MS-crew changed the title feat: Speaker Api Automatic id assign & Added PlayOneShot method & more log less throw feat: Speaker Api Automatic id assign & Added Pool logic & more log less throw Mar 1, 2026
@github-actions github-actions bot added the Events label Mar 1, 2026
@MS-crew MS-crew requested a review from Someone-193 March 2, 2026 00:22
@MS-crew MS-crew changed the title feat: Speaker Api Automatic id assign & Added Pool logic & more log less throw !feat: Speaker Api Automatic id assign & Added Pool logic & more log less throw Mar 2, 2026
@github-actions github-actions bot removed the Events label Mar 22, 2026
@MS-crew MS-crew marked this pull request as draft March 22, 2026 22:56
@MS-crew MS-crew force-pushed the SpeakerApiRereborn branch from db152c5 to 0dd20cd Compare March 23, 2026 23:04
@MS-crew MS-crew marked this pull request as ready for review March 25, 2026 15:29
@MS-crew MS-crew marked this pull request as draft March 26, 2026 21:25
@MS-crew MS-crew marked this pull request as ready for review March 26, 2026 21:25
@MS-crew MS-crew changed the title feat: Speaker Api Plus feat: Speaker Api: Part 2 Mar 27, 2026
@MS-crew MS-crew changed the title feat: Speaker Api: Part 2 feat: Speaker Api: Part Two Mar 27, 2026
Someone-193 and others added 2 commits March 28, 2026 00:44
* update

* remove MarshmallowFF fix

* Update doc 14.2.0.6

* fix footprint ctor for after player leaves

tbh the error itself might come from whenever mirror decides to remove peers and stuff cuz async

* I committed the commented out version when I was trying to recreate the bug 💔

* add docs + TryRaycastRoom fix

---------

Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
@github-actions github-actions bot added Transpiler base-game-bug Bug from the main game labels Mar 27, 2026
Copy link
Copy Markdown

@Someone-193 Someone-193 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering how much effort you've put into this, I'm just gonna trust that you've tested every feature lol

@Someone-193
Copy link
Copy Markdown

Someone-193 commented Mar 28, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API base-game-bug Bug from the main game

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants