#loaforcsSoundAPI
1 messages · Page 2 of 1
I'm fine with this, I left it on
@dark crypt Like can we do inside factory and outside and also ship? etc
The volume changing depending on where you are is only available in PizzaTower atm
what am I listening for here?
I really want @cinder jolt add christmasv2 reference 😛 so I can change it on LEC moons >.<
A smaller quieter version of the meltdown music
Ah balls >.< I will stick to Pizza for now then. I don't mind one volume but if it's quiet like in your clip, I don't wannt full send audio just so it can be heard for me to forget and update oneday to blow someones eardrums xD
the what now?
Delivery Icecream song but christmas one 😛
LEC still stuck on it >.<
You have to add that yourself :P
I remember seeing it I think?
Only sounds for it landing and opening etc
Although I haven't updated today if there's any updates
You should just have to change the filename
I don't have to make a replacer for it?
It's not this @dark crypt Lol
I already replaced dropship song, just christmas one I needed to do but there's no refence at all, not even in debugger..
I've never had that with LEC, and I sort of assumed they were just the same sound trigger but with different files
This is refence for OG rocketship
Wesley said it is LEC reason why his ships stuck on christmas song 😛
Which I believe after looking 😛
I've had LEC for weeks and I've never had that, is it only on Wesley's moons?
That I know of yeah, he said version he using still has the christmas song I guess?
The default game uses the non-christmas cue sinc it isnt christmas anymore
Not in this case :S I don't even have the christmas song anyway but can be found in LEC
Why I didn't even argue with Wesley about it haha
Because I asked him twice, can you please get rid of christmas song - he said he can't 😛
What a weird incompatibility
should definitely be able to, thats weird
thats probably why yeah
Probs a good thing tbh with what's going on with LE 😛
whats LE again? lol
LOL
LE = LethalExpansion
LEC = LethalExpansionCore
Ow they actually wanted to know what LE was? :S I thought it was a funny mb D:
im sorry i don't hear it even at 14 seconds, if you mean the warning voiceover going "warning: core overheating" that's because that is a seperate sound
base facility meltdown has two audio tracks one for the music and the other for those voiceovers, they just both get controlled by the music slider
but because you are replacing only the music the warnings can still play like base meltdown
- now that this tool is better you should replace "warning1" - "warning4" instead of putting the warnings in your music (meltdown actually increases the frequencey of these clips as the meltdown progresses)
Oh I see, okay. Are the warnings supposed to be so much quieter than the music? Or is it just quieter because my music is loud?
I think that's why, it could also be play on outside getting confused because it decreases the volume when outside
future feature idea: conditions for different creature behaviour modes
e.g. is little girl chasing you or just watching
This seems to get spammed in my logs when I start up a lobby
you probably have a slow hard drive, disable multi threading in the config
Or there is an error on load
Odd. It's on an SSD
multithreading doesn't seem to fix it
disabling i mean
i think i'd rather take the mod developers words over yours, no offense
eh sure
I don't get it
considering my pack uses AC it's possible
@radiant marsh thanks for looking into this, was at school should be able to look closer in a few hours
is there an "add" option instead of "replacement" if we have 2 json files replacing the same audio? Because I want to make it where I can let people toggle certain audio sets on/off
So like set 1 has a bunch of replacements and set 2 (if enabled) adds into the list for that audio
it should just handle that
if you just have both the audio sets enabled it should just work
hmm it doesn't do that for me. Is it because of
"type": "determinstic"
},```
in both json files?
yeah keep in mind that i haven't tested that, it's pretty low on my priority list.
also you most likely don't need randomness to be set to deterministic, determinstic seeds the randomness off of the filename so it is somewhat synced but it uses quite a bit more memory
oh ok, would pure work in this case or should I not use randomness settings for now?
by default it uses pure, so it doesn't matter if you put pure in there or remove the randomness alltogether
ah alright, thanks bongo. I really wish I could search more specific details on this thread via discord search.
working on the advanced company issue and got this list that ac messes with
seems to be a select few player audios and they get repeated several times
alright going to be putting out an patch to change the error into a warning explaning that it is in fact ac messing with something
also nvm the repeating several times isn't ac, but the source becoming null is
.
its not a full incompatibility but it does seem to cause issues
Strange, but how can problems manifest themselves?
Out of sync with everything? Game crashes?
I'm simple, I haven't encountered this
Although there were a couple of moments and suspicions about Amongus AC
seems like some sounds could fail to replace
Interesting
this something that depends on AC to get fixed, correct?
here's hoping potatoe gets on it soon
@fiery arrow small change.
SandWorm:SandWormRoar must be replaced with VoiceAudio:SandWormRoar to actually change the audio
Thatd explain a lot 
it seems to be ac doing some weird stuff between when soundapi detects the source and between when the first frame hits
most likely potatoe also ran into playOnAwake issues and solved it in this way
would love to check myself but advanced company is closed source and dnspy wasn't giving me answers
Well Potatoe should be active in the AC thread over the weekend you may be able to get him to help you then
Are Booleans the only variable types able to be used in configs right now? And what other conditions are available for replacers?
Not asking for any functionality specifically, just curious what the limits are right now
Reason I asked here is cause I looked there first
The wikis aren't extensive rn so I ask here
Also is the space between listed options here intentional? It's not typical of jsons to have spaces between listed items in my experiencce so I thought I'd make sure{ "matches": ["AmbienceSource:Random1", "AmbienceSource:Random2"] "sounds": "<ambient sounds>" }
Unless it's supposed to be like this?
"matches": [
"AmbienceSource:Random1",
"AmbienceSource:Random2"
],
"sounds": "<ambient sounds>"
}```
(I'm sure either probably works tbh)
Oh other than the missing comma
no missing commas there, but the sounds section is incorrect
"matches": [
"AmbienceSource:Random1",
"AmbienceSource:Random2"
],
"sounds": [
{
"sound": "<ambient sounds>"
}
]
}```
Sorry, by missing comma I don't mean in what I posted, I mean what's on the wiki, I'm just copy/pasting from the wiki
ah, yeah the wiki is outdated
All good, it's early days
Also deterministic is spelt wrong :(
Unless "determinstic" is a specific, other term I don't recognise
youd be right
L @cinder jolt👀
yeah I dont think itll be that big of a deal
got work for u bongo
doubt there is a way, but if there was any possibility of a check to see what ambiance is playing to STOP the API from injecting more ambiance over it would be nice
since it would need to recognize the specific sound it played it's probably not very doable
Find and Replace determinstic with deterministic, done
Exactly
Preventing overlapping audio is, I imagine, probably going to be something the API aims to do?
no i mean, lets say i got three sounds: Ambiance1(Long), Ambiance2(short), and Ambiance3(sudden).
While Ambiance1 is playing, i'm okay with Ambiance3 playing and overlaying on top of it. HOWEVER, while Ambiance2 is playing, no other ambiance sounds should play
this would be something i'd set on a per-sound basis, basically
THAT SOUNDS LIKE A LOT OF JSON WORK
it would prevent, for example, two long ambiance sounds from overlapping and sounding bad
i hear you, but what about this
we get bongo to do all of it
y'know
like all of it
lmao I mean the stuff on my side
Jsons are now included in the soundpack whjich is OUR side
"bongo, do the json for me"
oh boy
(once bongo comes online i'll be tagged on a very heated message)
shhh don't let mods know
You don't need to include every option in the jsons though, if you leave the overlapping section out completely it'd just default to overlapping everything, like how it functions now
Just like you technically don't need to put "weight":1 on sounds, cause the weight is 1 by default
hmmmm, true on second thought Im okay with this
that too
ive asked about this so we'll see
Only thing keeping me from switching completely from PizzaTower is fading music
if all clips could fade when told to stop BEFORE being finished
it'd be more like: Deepbass.ogg -noOverlap
Oh, does anyone know if you can have multiple conditions? Or how to format it?
"condition": {
"type": "config",
"config": "Copyright:AllowCopyrightedMusic"
},
{
"type": "config",
"config": "Test:TestConfigOption"
}```
Instinct tells me it's like this
that should work
ty
you've probably found out by now but it won't
planning to do that in an update now that I'm on weekend
going to do the actual thing condition system
won't be by default
What does this mean?
you need to explictly define fade in and out
Fade in and out? how does one define that? like how long it takes? like which sounds can be interrupted to fade?
like how long it takes and i havent figured out the syntax
Gotcha, the sudden cutting out is super immersion breaking and before your api I never thought it could be addressed
my priority list is something like:
- improve condition and add variable system
- better logging and dev tools
- investigate issues with apparatus and ship thrusters
- fade in and out, random pitch, just more settings for each sound
- hotreloading
- completly removing a sound
- advanced company issues
- maybe more audio formats
Question about point 4. Random pitch will have to be specified correct? a lot ofsounds already have an RNG for pitch variance using the Weight system for LR and I want to make sure it doesnt pitch something pitched
yeah most features from here on out will be "opt-in" where by default it'll do nothing so you'll have to define it manually
but yeah it won't pitch pitched sounds if you dont tell it to
also: think ive got a devlish idea on how to solve the issue on where the industrial fan on the facility map (and some other sounds) arent being picked up
should be apart of the condition update
well that's something I love to hear
also is there a way to make the weight system affected by the previous choice?
For example if the options are 1,2,3,4,5 and it pick 1 can the RNG be changed for the next selection to avoid the occasional experience of it choosing 4 like 4 times in a row?
im not overly sure how i'd manage that considering that would use a lot of memory
fair, I kinda expected that
(and you guys using determnistic on everything already is pretty annoying)
since it would have to remember the previous choice
we dont use it on everything, only ambience for the most part
ah well i think i need to rewrite a bit of code to get fading working so i could add a little flag then
a little flag?
"direct_repeats": false
and then it keeps just a simple boolean (theyre like 4 bytes in memory) and that gets swapped on if it was recently played as part of a replacer
and when I was talking about the fading I just want to make sure we're on the same page that it would only fade sounds that weren't able to be finished playing (interrupted )
oh that doesnt sound so bad. Is soundAPI already very Ram heavy?
I havent noticed any ram hogging issues really
can be for large sound packs because i need to keep all the audio clips loaded in memory
ive got no clue, plan to do more profiling stuff with those better dev tool
and plus with the condition update you
'll be able to "cache" certain condition results, so it doesn't need to recalculatae the whole condition
so if you do
"cache": "on_startup"
i can unload the sound replacer group (or more likely just not load it)
if that condition returns false
well so far Im incredibly impressed with what you've been able to do so far
you already can, things like flicker lights are
main thing is fixing that fan at the facility entrance
- with this you'll also be able to replace the meltdown explosion sound
Room specific sounds will be very cool
I assume Ill also be able to specifiy which interior ambiance is used here as well? with this update
yeah
nic nice
Pixel really out here discovering things that I have had listed in the sound doc for a week now 
THE UPDATE ISNT OUT YEt
no like controlling each room
You can already do that?
and plus this i think also removes the bandaid fix for playOnAwake that is currently in
yeah in your replacer somewhere will be *:FlickerLights because flicker lights plays on everyropom indivually
I was under the impression that you couldnt use room specific sounds yet
So thats what you just added in the last update?
no since day 1
because of the whole thing requiring gameobjects to be in the matchers
each room is a game object for lights based sounds
That's so cool
I'm hyped
chat it has been completed
i think its factorwindambiance right?
or am i going to combust
What is?
the starting room for facility
sorry, youre gonna combust
alright with a little bit of magic surely this is the one
sorry, youd be right
what do you mean? thats the correct thing?
yeah
are weights fixed?
no
i'll add more debugging stuff if you could look into it
i dont have a soundpack setup to test that
this is the biggest offender from my pack
specifically the footsteps
alright could you test this please?
going to work on the condition system now
for?
i changed up how it calculates slightly and added some more debug logs
for the random weights
because you included a potential fix or to get a log of whats going wrong?
is the weight system fixed>
also
{
"type": "and",
"conditions": [
{
"type": "conditionA"
},
{
"type": "conditionB"
}
]
}
does that look good?
yeah
working on it
also debating on whether or not i have a not condition or you use !config
still broken
conditions and and or are done
could i get a log?
also could i get input on this?
doing all 4 horsemen of logic seems like a solid idea
whats the other one? and or and not are the ones im implementing rn am i forgetting one?
xor
as in only one or neither
and with and and or you can specify as many conditions as you want
so id either need to restrict xor to only two conditions or find a way to have it work
why only two
YOU NEED MORE?
wdym? for the and conditions
i mean may as well
because nesting conditions like that
looks awful and more importantly
increases memory usage
@fiery arrow could you test this one?
Oh wait were talking about conditions, shit
I wanted logic for config options
wdym? config options are conditions

LR has two scanner variants, but both can be turned on no? that would cause self confliction, so having one turn off if the other is also turned on is what im thinking (because people will be stupid enough to do that and come asking why things are broken)
oh yeah im working on bringing more types of config options
still broken
so you can have a config option that is "None", "Pixel", "Moroxide" and then you can use a condition to check whether it equals
this part could take the longest
log? i felt like it shouldve worked this time
Just used jumping since one of them has a very low weight
are you sure cause from these logs it seems to be picking different ones
its getting so big holy
I hear the "prkr" variant 8/10 times
i literally moved one line around maybe this fixes it
seems to have done it :)
also
{
"type": "equals",
"a": {
"type": "config",
"config": "Sounds:ScanVariation"
},
"b": "Moroxide"
}
does this look good?
i just don't really like that use of a and b surely theres better names for it
how else would you do it?
well the syntax wouldn't be different its just a and b i want different names for
guys we are in business
this is some of the worst code ive ever written but it works
I've heard this somewhere before
Long as it works
What have I heard this said about (Customsounds/lcsoundtools)
well lcsoundtool/customsounds foundation is shaky
loaforcssoundapi's foundation is fairly solid id like to think
so having a small bit which is slightly shaky isnt so bad
Trust me I have absolute faith bongo, just sayingggg
its also not too bad of code, but c# doesn't have a specific feature so i have to do a bunch of wonky stuff
just the comedy of "Man why would they do this like this, this code is awful" to a few days later "Man I had to do some janky stuff to make this work right" is very entertaining🤣
Stack trace:
loaforcsSoundAPI.Behaviours.AudioSourceReplaceHelper.Start () (at ./Behaviours/AudioSourceReplaceHelper.cs:20)```
I know it's not really an issue but I'll just post it here in case since it's an error 🤷
Unsure if it's LR or LoaforcsSoundAPI
most probably LoaforcsSoundAPI
Hey I was given a mod that's supposed to replace the facility meltdown music using this api as the dependency instead of PizzaTowerEscapeMusic, but for some reason the audio doesn't play for me when pulling the apparatus. Here's logs from 2 different runs:
Cus it's not implemented yet, LR is gonna merge their FacilityMeltdown stuff into normal LR once the api actually implements it
You got trolled
Bongo is the one who told me to use it smh
Was boutta say there's no way I just got hardcore trolled by the mod dev
Lmfao
This would be absolute gold and would bring my respect for bongo to new all time highs
april fools gonna go wild :3
it will replace all sounds, even footsteps with the "roll"
@sleek fjord coilhead and its sounds are not working for me(((
Tested in the "LethalDev" test room
really? is this in a testing enviroment that uses exclusively LR and its dependencies?
Yes
I checked yours separately and nothing else
And your custom ones with a piece of you
All the same
thank you for letting me know! we'll look into it
@sleek dew if I remember you use QualityCompany, you need to disable it's experimental networking feature or else it conflicts with the API and makes some sounds not play
I would personally recommend removing that mod entirely though as it caused me more issues than it was worth
I haven't used it for a long time. take a look at my build and tell me what could be the cause of this error?
LETHAL_LONERS: 018dd7d3-4dd6-1482-17c5-a2d5c5126a4f
@proper dragon
@fiery arrow @sleek fjord @merry sedge could you guys give a list of everything you'd want to have be a condition? stuff like "PlayerHealth", "DungeonType" stuff like that
"BehaviourState" for enemies if possible
auh that might not be possible because there can be multiple enemies of the same type
and my system doesn't let me pass in more context atm
multiple of the same type?
yeah like multiple hoarding bugs, and so only things like the ghost girl could be doable
but i think it would end up pretty janky
does the console not specify what enemy has changed behaviour state? I thought it did
yeah im saying it could be done, but would most likely be stuff like GhostGirl:IsChasing or GhostGirl:State == Chasing basically and that doesn't feel very good to work with
might come back to it if i ever upgrade the context system though
What about loading different sets of sounds when a new level is loaded? for variety
PlayerHealth, Sanity State(Not sure if this is in normal game, but I keep hearing about it) Creature distance to Player (no idea if this is possible), TimeOfDay, and hmmmmmmmmmmmmmmmmmmmm
also you guys can do
"condition": {
"type": "equals",
"a": { "type": "DungeonName" },
"b": "Facility"
}
and that just works now
just like that?
cool cool, very nice
when i update meltdown you'll be able to pull in data like the current time until meltdown
and check if that is say under a minute
its a nice Spaceship, it really is bongo
like moon or dungeon?
moon shouldn't be too hard
"if variable a (dungeonname) = variable b ("facility") then true"
am I reading that right?
basically
moon, yeah
Im not too fond of a condition moon
alright {"type": "CurrentMoonName"} is something you can plug in now
well i just need to copy a file, change 1 line, add a new line to register ti and its done
Im more thinking randomizing sounds when a new moon is loaded
depends on how LLL and LE handle it but this should work
interesting
so pixel could for example change the sounds a monster makes when a new moon is loaded, so people cant "get used to it"
could actually do this because i want to add that "if sound1_A gets picked, also pick sound2_A" system i could do that
WHY HAVE 3 SOUNDS PER MONSTER WHEN YOU CAN HAVE ONE SET OF MONSTER SOUNDS PER MOON
YES, this is necessary for my future meltdown updates
(I have been wanting a system through which I could have a set of themed sounds per round, like one round a Pikmin preset is selected and selected sounds are only replaced with Pikmin sound effects, and then the next round a different preset is selected etc. Some condition, or other way, which allows for this would be nice)
keep in mind it wont be facility
yeah ik
itll be like Level1Flow
really going to need to work on those better tools after this
lll dependency go brrr 😉
well as long as StartOfRound.Instance.currentLevel.name and RoundManager.Instance.dungeonGenerator.Generator.DungeonFlow.name are both the correct things and are updated by LLL then i won't need a hard dependencyh
Oof
depending on if your using LE moons with or without LLL
oh god
LE names selectablelevel files based on planet name without sanitizing them
O.o coming from @cinder jolt this is concerning
nah it just means i have to do a bunch of checks to see if LE is installed without LLL, if LE and LLL are installed, checks like that
or by the sounds of it theyre might not even be a good data point
there isn't a good data point to be completely honest, atleast in the current modding situation
also does LLL allow for custom sounds in moons? Ive noticed a few clips lately with some mixed sounds
with just LE you get file names like this
with LLL they would be
CDAridionLevel
WastelandLevel
iirc
yeah?
would you want explict less than operators? because you can just swap the variables because it evaluates it as a > b or a >= b. so you could just swap the values of a and b
yeah thats just how i do changelogs
i have the heading level a lil messed up but yeah
yeah it ac is doing some silly stuff with audiosources
seems to cause a couple issues
eh i only get 1 small error and thats all
everything else is fine for me
nvm it aint no small error 👀
i rechecked my modpack now it got big errors only when loading into a lobby but gameplay is smooth
alrighty i updated your mod and LR my errors are fixed (i'm still gonna test more and check if i can find a single error)
though it wont be the same for others which i'm sure you already knew
ooo i found a new issue now
is when u leave the lobby the console starts spaming errors (no fps changes) by steam
but when playing the game on any lobby no errors would show up
only on main menu it starts to (not when you loaded up the game but after leaving a lobby)
im going to explode if this is because of the bandaid fix for playonawake
Not sure if it’s related but a mod was released or updated today mentioning something about awake
Might be helpful, might be useless, but I’d check it out
what?
No idea if this is even remotely related
But it says awake :3
Lmk tho if it is/isnt
Feel like it’s likely unrelated
nah thats a different thing
Sad
i already manually do its main use case
- its more optimised on my version cause i know the data better so i can cheat and stop processing more effectevely
So many things I want to say.
I think his response is a bit rude and a bit uncalled for tbh
Noone at all said anything about his mod being shit
If u want I can re-test where I got the issue and send the consoles errors
If that helps
The new update did fix the errors I got during gameplay now it's errors during main menu
not an issue but i guess this is what happens if u cap your lobby to 32 players it heals 32 players even non-existen ones lol
so im testing it again with the same modpack and tried doing the same things i did yestday
theres no errors i kept trying like 6 times
still no errors?
i havent change anything since yestday errors
neither i got errors during gameplay
odd
tf I do to them
I don't know q-q
I never called ac shit I said it's doing silly stuff
Well tbf potato has been super sensitive lately, he talked about removing huge features from his mod after raining negativity. I think he’s just in a rough patch right now so I wouldn’t take it too personally @cinder jolt
If you can't fix it honestly don't worry about it, it doesn't seem like it causes any functional issues anyway
also btw is this what you would like to do?
the dropdowns? i saw another mod (not this one, but forgot the name) that also separated every 0.x version on a dropdown, that had all the 0.x.x inside
thats how i usyually do changelogs
gotcha gotcha
that's much less confusing, yeah
the dropdowns do look cool, though strangely empty
too used to seeing pages filled top to bottom with changelogs
That's the way I like it
yeah i will add those dropdowns they are really cool
Throw your information at me
question, does deterministic mean that sounds all play at the same time as well (specifically ambience)?
everyone should hear the same sounds if you have deterministic
deterministic seeds a random number generator with the file name
yes but do they activate at the same time for like ambiance? @cinder jolt
like can one person hear ambience and one person not hear it? not the same file, I mean like at all?
deterministic = its always the same. it will be the same for every player, so same sound same time each time
(given that the basegame plays it at the same time for everybody)
pretty much everything except for music and UI should
oh okay cool just was curious
I have some questions
- If I add my soundpack mod, with just some sounds changed, but have LethalResonance with the same sounds, what sounds are going to play, mine or LR?
- I want to add another HightAction2 sound, I have HightAction2_01 and HightAction2_02 and this is what i did, so is that even correct, because when I start the game, I hear the normal music, not the LR one
{
"randomness": {
"type": "determinstic"
},
"replacements": [
{
"matches": "HighAction2:HighAction2",
"sounds": [
{
"sound": "player/HighAction2_01.ogg",
"weight": 1
},
{
"sound": "player/HighAction2_02.ogg",
"weight": 1
}
]
},
{
"matches": "LowAction:LowAction",
"sounds": [
{
"sound": "player/LowAction_01.ogg"
}
]
}
]
}
Your matches section is incorrectly formatted, and if you want LR with your own sounds you just disable the LR sounds that are overlapping
depends on load order which is depended on alphabetical order i think
So if my mod start with letter before L it will override it, and I don't need to disable anything form LR config?
I think afterwards overrides?
Where do I find the right matches words
Github wiki page of the mod
Still doesnt work?
Yeah that should work, odd
What does the log say about it?
I will start the game only with LR now to see is it this mod the problem or something else
I guess something I do wrong, without it all the LR sounds are there
The mod name start with S, so should override LR
try A
Even with A doesn't work
I'll try again tomorrow, tnx for the help 🍻
It's only not working when I add HighAction2_02 sound and do the json for it, if it's with only HighAction2_01 in, it's all good, strange
Really waiting for this feature
#modding-general message
Please let me know if this is planned in the near future and should I count on it?
this feature is in my Dev branch and should be soonish
Great, I'll be waiting
@cinder jolt Is this an error from SoundAPI? [Error : Unity Log] NullReferenceException
Stack trace:
UnityEngine.Component.CompareTag (System.String tag) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
EnemyAI.EnableEnemyMesh (System.Boolean enable, System.Boolean overrideDoNotSet) (at <af9b1eec498a45aebd42601d6ab85015>:IL_004C)
StartOfRound.SetPlayerSafeInShip () (at <af9b1eec498a45aebd42601d6ab85015>:IL_008B)
AudioReverbTrigger.ChangeAudioReverbForPlayer (GameNetcodeStuff.PlayerControllerB pScript) (at <af9b1eec498a45aebd42601d6ab85015>:IL_0177)
AudioReverbTrigger.OnTriggerStay (UnityEngine.Collider other) (at <af9b1eec498a45aebd42601d6ab85015>:IL_018B)
[Error : Unity Log] NullReferenceException
Stack trace:
UnityEngine.Component.CompareTag (System.String tag) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
EnemyAI.EnableEnemyMesh (System.Boolean enable, System.Boolean overrideDoNotSet) (at <af9b1eec498a45aebd42601d6ab85015>:IL_004C)
StartOfRound.SetPlayerSafeInShip () (at <af9b1eec498a45aebd42601d6ab85015>:IL_008B)
AudioReverbTrigger.ChangeAudioReverbForPlayer (GameNetcodeStuff.PlayerControllerB pScript) (at <af9b1eec498a45aebd42601d6ab85015>:IL_0177)
AudioReverbTrigger.OnTriggerStay (UnityEngine.Collider other) (at <af9b1eec498a45aebd42601d6ab85015>:IL_018B)
[Error : Unity Log] NullReferenceException
Stack trace:
UnityEngine.Component.CompareTag (System.String tag) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
EnemyAI.EnableEnemyMesh (System.Boolean enable, System.Boolean overrideDoNotSet) (at <af9b1eec498a45aebd42601d6ab85015>:IL_004C)
StartOfRound.SetPlayerSafeInShip () (at <af9b1eec498a45aebd42601d6ab85015>:IL_008B)
AudioReverbTrigger.ChangeAudioReverbForPlayer (GameNetcodeStuff.PlayerControllerB pScript) (at <af9b1eec498a45aebd42601d6ab85015>:IL_0177)
AudioReverbTrigger.OnTriggerStay (UnityEngine.Collider other) (at <af9b1eec498a45aebd42601d6ab85015>:IL_018B)
Been trying to figure out where it's from
no seems to be an enemy is failing to spawn in
I'm really wondering what could be causing it
it's taking about tags are you on a modded interior?
No
Like wdym?
Ahhh okay
Here let me post my mod list, maybe you can figure out where it's from
My only guess would be MEOFork maybe...
While I'm at it @cinder jolt could anything in that pack cause voice chat to lag or delay? I was having people telling me vc kept being really choppy tonight and my only guess would be ToggleMute lol
umm no probably wouldn't be soundapi, considering I don't really touch audio sources at runtime atm
could be as weird as another mod just spamming a bunch of network traffic
ight thought i should start getting feedback on this now. this is the current dev veresion which contains more conditions and a whole new variable system. i'll probably need help writing the docs but want to get it out to you guys
the following should now be possible:
{
// ...
"condition": {
"type": "equals",
"a": {
"type": "config",
"config": "Variations:Scanner"
},
"b": "Pixel"
}
}
this shows off that you can now have different types of config options! (the accepted ones are boolean, number (well technically float and int), string) and then use that in a new condition equals.
there is also greater_than (a > b) and greater_than_or_equals (a >= b). these ones only accept number so be careful!
now im not sure wether or not i should also add a less_than variant as you could flip the values of a and b to do the same thing.
you wanna elaborate on boolean/number/string?
boolean: true or false
number: 1 or 0.5 or 1239048
string: "text"
And what variables can they be used on?
wdym?
Like Sanity, is that something we can check for?
What about a variation of mod_installed where if some other mod is also replacing the same sound prioritize that
that could be doable but im just chilling for a little bit so it might be as far as the weekend
no my warning just isn't shit l riding l working l showing up lol
meltdown is ready to integrate with sound api, but sound api hasn't updated
reading this back how tf did my phone autocorrect to that
3am moment ig
either not a sound api issue (looks like sounds are loading when you are ingame I don't so this) or something is wrong with your sound files
make sure they're not corrupted and try ogg format
Before that everything was fine, I landed at the company
Possibly problems from him
There's music playing there
Today, after updating the mods, I received a combination of bugs and I’m just sitting in shock
@cinder jolt did you ever fix the compat with MoreCompany btw?
no is it actually breaking smth?
Gives the same null errors that it gave with AC, even blames AC for doing something lol
yeah it's probably fine then
I've changed the message in the Dev branch just gotta get the time to actually fucking add changing the audio at runtime
One question, sound API has problem only with AC, or with other mods too
AC and morecompany
What's the problem with more company, because I want to use it with LR
It's just an error spam, it shouldn't affect anything
Not even a spam, just errors sometimes
Oo noice
please use github links for sharing betas etc from now on instead of sending dll's or any files @cinder jolt
{
"update_every_frame": true,
"replacements": [
{
"matches": "MeltdownHandler:music",
"sounds": [
{
"sound": "meltdown/in_facility.ogg",
"condition": {
"type": "equals",
"a": {
"type": "PlayerLocationType"
},
"b": "inside"
}
},
{
"sound": "meltdown/outside.ogg",
"condition": {
"type": "equals",
"a": {
"type": "PlayerLocationType"
},
"b": "outside"
}
}
]
}
]
}
the most cooked syntax is here. swapping out audio while its playing is possible now. you'll need this dev version and im not fully sure if it works yet lol but have fun
Reposted your.message too
Cuz it had the download in it
I’m on to you bongo 👀
Any news about this?
Should I even try to make a mod to replace the rn sounds, and after the update I can just add information there that it only plays on a specific moon?
Or will I have to redo everything from scratch and it's better to wait for now?
this is the dev branch i was talking about, its almost ready just gotta do a little bit of testign and write docs.
in terms of docs im still recovering from my ear infection so theyll be a while
https://github.com/LoafOrc/loaforcsSoundAPI/releases/tag/1.0.0beta1
Ah, okay, thanks, then I'll wait a bit. I wish you a good recovery!
i had this being spammed earlier after quitting a lobby, not sure if its a sound api issue or what
heres the log file
might be not sure, but probably not
I've had this before on and off before SoundAPI existed, I don't think it's related but it could be
Same for me. It also disappears when loading into the game again iirc
Any update on randomising PlayOnAwake sounds while they loop?
deterministic is spelled incorrectly in code btw, it only registers "determinstic" @cinder jolt
question
If I install LCSound, will there be any conflicts? xD
https://thunderstore.io/c/lethal-company/p/jaaj/DarkSoulsSnail/
Just for this mod 😂
There wont be conflicts as long as two mods arent trying to replace the same sound
@cinder jolt mp3 format is broken
@cinder jolt Hows the update coming along? Or is your ear still being a pain
That can legitimately be called a CustomSounds/LCSoundTool replacement, incredible job!
We had a long journey to get to the point we are right now.
it's almost there just don't have the motivation atm
How can I do HighAction2 to have 5 random sounds
I'm just loading sound files with LCSound not replacing any sound so it should be ok.
Are there known bugs with loaforcs/lethalresonance? It sounds like ship thrusters not playing (or being super quiet?) might be known, but nobody really seems to mention it. A lot of sounds from LR are working, as I can hear the new door sounds, as an example. but overall the feeling of the pack pre and post move to loaforcsSoundAPI feels very different somehow. i think a lot of sounds are maybe not playing, or not being replaced?
perhaps i've gotten used to a lot of the newer sounds, though. the ship thrusters are definitely either not there or much weaker than even vanilla.
they are quieter that is a known issue as for some sounds not being replaced itd probably be fixed in the next update coming sometime
👀👀👀
Bongo for you are the chosen one, you must restore me to my former glory 😩😩
you must also restore me to my former glory 😩😩
You must restore them to there former glory 😩😩
you must restore him to his former glory 😫😫
You must restore her to there former glory 😩😩
you must all get banned
no child left behind
I tried put weight on HighAction2, I got only 2 audio files, every time just one plays
is there something with the "randomness", what should I type there, do I need it for that
fixed in the dev version
in git, not in thunderstore
yes
it's 1.0.0beta1 right
sorry again for my questions, but is there a way to add different background songs to a maps, that plays all the time until you die
You might be able to connect it to the "startofday" ambience cue, but itd only work outside
but it will be for all the moons, not just some of them
the next update will let you specify what moon
nice, I will wait, thank you 🍻
How up to date is the code on GitHub? I'm assuming threading is still an issue, and I was looking at the threaded sound loading and wondering if you'd considered making it join that thread at the end of the chainloader, or just in time before a sound is requested?
that should be an easy way to prevent race conditions when accessing the sound replacement dictionar(y/ies?), assuming I'm reading everything correctly
Beta branch is decently up to date
im going to have it join just before you connect
also i think its the most up to date but i was still planning on rewriting some stuff
sounds can't be replaced in the menu?
they can be, that's the whole point of "load_on_startup" is to have those loaded first
then isn't any menu sound going to access the collections being modified off the main thread?
(I should be clear, I'm assuming "connect" means joining or creating a lobby)
no its setup in such a way that things are cached via audioclip name, then that goes to a list.
so SoundReplacementCollection.RegisterWithMatch() isn't called off the main thread? or is SoundReplacementAPI.SoundReplacements populated before the thread starts?
no
wait, no to which?
SoundReplacementAPI.SoundReplacements is populated once on Awake() and then off the main thread
right, and if the thread is adding buckets to the dictionary, then it'll be able to cause a race condition
yes that's the whole crash issue
which is why it also gets populated somewhat on awake
if any new keys are added off the main thread it's not safe
at least without ConcurrentDictionary
ehh seems to work fine as long as you have a somewhat fast disk
but you can't just assume that
even if a PC is blazingly fast, it can still have something slow it down
it's either gotta be treated as read only from the second thread or it's got to be joined before the main thread reads from it
or it has to use thread-safe collections
otherwise you may read from it while it's being resized and then you get back garbage
be silly :3
Any chance you could push some of the bug fixes to release?
probably not for a week or two until I'm on school holidays
@cinder jolt
I am not sure what is causing all of these errors.
i've got no clue what youre talking about (its a 6mb file 😭 ) so im going to guess its about occludeaudio which is a widespread issue that's a bit tempremental
Awesome. I did not know about it, I will disregard this error for now. 😄
Sorry. I will specify next time. 😆
just to give a bit of progress on the update, im currently rewriting the multi threading. should be a) more reliable and b) faster because im using a thread pool
@sleek fjord @merry sedge 11 seconds to 2
wow
@sleek fjord @merry sedge @fiery arrow probably final ping for today, i did it 🙏
https://youtu.be/qI3fCSRt1uo
also this approach is techincally more memory efficent than pizzatowerescapemusic
Ayyyyyyyyyy
Update is going on TS soon right?
yeah going to help the lr team port over meltdown then it will
Yooo
Excite
{
"update_every_frame": true,
"replacements": [
{
"matches": "MeltdownHandler:music",
"sounds": [
{
"sound": "meltdown_inside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "inside"
}
},
{
"sound": "meltdown_outside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "outside"
}
}
]
}
]
}
not sure on how different it is from pizzatower but heres everything for it to work
big fixes 
Hearing the apparatus sound from LR actually work before it got pulled actually brought a tear to my eye
Lol
Welcome back
oh is that not working in the live version lol?
It is? I have dev branch, disregard lol
I should start working on lr too
No lol, it plays the vanilla one in the live version rn
😂
I'm excited for this update, it's gonna fix so much
Can you just post an example of all the json changes? I dont want to wait for the whole docs to be updated to start writing
https://github.com/LoafOrc/loaforcsSoundAPI/releases/tag/1.0.0beta4
{
"update_every_frame": true,
"replacements": [
{
"matches": "MeltdownHandler:music",
"sounds": [
{
"sound": "meltdown_inside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "inside"
}
},
{
"sound": "meltdown_outside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "outside"
}
}
]
}
]
}
im gonna start writing docs now but haven't got long before i need to do stuff. theres also "on_ship"
9 new conditions + the config one got some more functinality as well, i dont have an example for them all yet (most of them are untested lol) but im working on that now
Now push it on TS, can't wait to see everyone pog out about the LR sounds that didn't work before lol
yeah theres a good chunk of code just dedicated to playOnAwake sounds lol, hopefully there is no more
I noticed a minor issue when playing with football, that being my Low/HighAction sounds are music, and it sounds a bit out of place when football triggers it. Any way to check whats causing the "stress level" to increase?
probably not unfortunately
Look into it at some point please
If there's a way to check you could even do custom tracks for every creature, so id say it'd be worth a small headache to implement
alright heres a bunch of the non lethal company conditions
https://github.com/LoafOrc/loaforcsSoundAPI/wiki/General-Conditions
Is randomizing playonawake sounds while they're already playing possible?
wdym already playing? you do get to randomise playOnAwake sounds but thats because it gets picked up like a normal sound now
As in I have two variations of a playonawake sound, and I want it to randomly pick one every time it gets to the loop point
im not totally sure about looping sounds, they might need a bit more attention
Did you fix this typo by chance?
no its fixed now
and all the lethal company specific ones
https://github.com/LoafOrc/loaforcsSoundAPI/wiki/Lethal-Company-Conditions
just gotta write some more docs on the range operator (definitely not stolen from minecraft)
also i refined the names a little bit more so you may need to change what is in there
Is this right?
what are you trying to do? also it needs to be inside "config"
you have:
"config": {
<entry>
},
<entry>,
<entry>
the correct way is:
"config": {
<entry>,
<entry>,
<entry>
}
notice how everything is inside the curly braces of config
Having a yes/no toggle for music
yeah thats the correct layout but you'll need to change "EnabledSounds:Menu" to be different, otherwise it will have no way to tell them apart
if you want to have different variations of music there's a better way now as well
Would I need two replacers, one with music one with non-music alternatives?
nope i removed that restriction, almost everything can have a condition one sec
{
"condition": "conditions can go here",
"replacements": [
{
"matches": "MeltdownHandler:music",
"condition": "here",
"sounds": [
{
"condition": "and here"
}
]
}
]
}
also if you plan on having varaitions for the music via config theres a better way than what the lc team had to do
No variations yet thankfully
alright should be last version:
https://github.com/LoafOrc/loaforcsSoundAPI/releases/tag/1.0.0prerelease1
i've gotta go for now, ive got all the docs written and i can respond to questions in a bit
How would I arrange it to have music and non-music in the same replacer but still have the toggle? Like this?
{
"replacements": [
{
"matches": "MeltdownHandler:music",
"condition": "non-music config",
"sounds": [
{
}
]
},
{
"matches": "MeltdownHandler:music",
"condition": "music config",
"sounds": [
{
}
]
}
]
}
i think this is what you mean?
Yeah that looks more right lol
Would I need the condition on all of these or just the first of the batch?
Then I would need a replacer for music and non-music right?
Which would be more performant here? 30 or so in one replacer, or 15 in two replacers?
I would need to have a condition check on every of those 30 sounds
yes on each one of the replacments
plus next update i plan to have a way to mark a condition as "static" so it doesn't need to recalcualte it and can just unload ones that the condition is false on
That'd mean it just stops checking for those sounds until reloaded right?
like for example if you had a config for a whole replacer, and that config was disabled i could just skip loading that replacer
would save a bunch of time
anyway gtg
Is the "player is holding item" condition here yet?
I could def add that
nah thats actually crazy
is that low or high
load times are boutta be crazy fast
whats the diff
i used to just send off a secondary thread to do some work. changed it over to use a thread pool and just spread out the work more lol
still probably not the best considering im not totally sure what im doing with c# multithreading but works fine
alright pushed the update to thunderstore hoping everything doesn't break 🙏
Looking forward to messing with it later
Oooo does this mod allow to change the different times of day tunes?
For only a specific moon
Yup
wth I’ve got to learn how to do this
this great news, Im gonna cry
@cinder jolt is there a bug with SoundAPI again where voice chat doesn't work? We have someone who can't talk while landed
What did I mess up here?
"randomness": {
"type": "deterministic"
},
"condition": {
"type": "config",
"config": "Mods:CompatibilityFootball",
"value": true
},
"replacements": [
{
"matches": [
"FootballPref:PlayerFollower:Shirobon - Opia_loop",
"FootballPref:PlayerFollower:Shirobon - On The Run_loop",
"FootballPref:PlayerFollower:Shirobon - Shibuya_loop",
"FootballPref:PlayerFollower:Shirobon - This Love_loop",
"FootballPref:PlayerFollower:Shirobon - Fight For You_loop",
"FootballPref:PlayerFollower:Shirobon - Pure_loop",
"FootballPref:PlayerFollower:Shirobon - My First LSDJ_loop",
"FootballPref:PlayerFollower:Shirobon - Chiptuna_loop",
"FootballPref:PlayerFollower:FLIPPENDO - Love Is Insecurable REMIX_loop",
"FootballPref:PlayerFollower:KENTENSHI - paranoia_loop",
"FootballPref:PlayerFollower:Jredd - Blip Shards (DS-10)_loop",
"FootballPref:PlayerFollower:Lunar Synthetic - Vex_loop",
"FootballPref:PlayerFollower:Kittenji - LSDJ Shop_loop",
"FootballPref:PlayerFollower:Lethal Company - Jester Song"
],
"condition": {
"type": "config",
"config": "Music:DMCAMusic",
"value": false
},
"sounds": [
{
"sound": "Compatibility/FootballMusicSpaceBoy.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicGAS.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicDejaVu.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicNightOfFire.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicDancing.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicRunningInThe90s.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicDontStopTheMusic.ogg",
"weight": 20
},
{
"sound": "Compatibility/FootballMusicNightOfSecrets.ogg",
"weight": 1
}
]
},```
Every time I have these warnings it is causing major stutters
This doesnt seem right either
is it only one person?
if it is then its probably not soundapi
@cinder jolt help 
oh might help if i register the conditions 💀
💀
alright 1.0.3 will fix it
What about this? Tried many variations but couldnt get it to load correctly
uhh yeah ill get some debug logs for those one sec
ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x00008] in <787acc3c9a4c471ba7d971300105af24>:0
at System.Collections.Generic.Dictionary`2[TKey,TValue].set_Item (TKey key, TValue value) [0x00000] in <787acc3c9a4c471ba7d971300105af24>:0
at loaforcsSoundAPI.Behaviours.AudioSourceReplaceHelper.OnEnable () [0x00000] in ./Behaviours/AudioSourceReplaceHelper.cs:32
UnityEngine.GameObject:Internal_AddComponentWithType(GameObject, Type)
UnityEngine.GameObject:DMD<UnityEngine.GameObject::AddComponent>(GameObject, Type)
UnityEngine.GameObject:AddComponent()
loaforcsSoundAPI.<>c:<Awake>b__11_0(Scene, LoadSceneMode) (at ./SoundPlugin.cs:107)
UnityEngine.SceneManagement.SceneManager:Internal_SceneLoaded(Scene, LoadSceneMode)
(Filename: ./Behaviours/AudioSourceReplaceHelper.cs Line: 32)```
I'm on 1.0.4
yeah my friend just got the same error
its fixed in 1.0.5
im on 1.0.5 👻 yeah ok we're still on 1.0.0
[01:09:31.9883599] [Debug :me.loaforc.soundapi] [Multithreading] Thread finished. 0 actions are left.
[01:09:31.9933468] [Debug :me.loaforc.soundapi] [Multithreading] Thread finished. 0 actions are left.
[01:09:32.0272561] [Debug :me.loaforc.soundapi] [Multithreading] Thread finished. 0 actions are left.
[01:09:32.1215100] [Debug :me.loaforc.soundapi] [Multithreading] Thread finished. 0 actions are left.
[01:09:32.1743686] [Debug :me.loaforc.soundapi] [Multithreading] Thread finished. 0 actions are left.
[01:09:32.1743686] [Info :me.loaforc.soundapi] [Multithreading] Multithreading finished. JoinableThreadPool ran for 260288 ms.
🫠
Not that bad every startup tho. According to debug logs actions are finished within a few seconds and then I get like 3-4min of 100% cpu load thermal stress test
try decreasing the amount of threads in the config?
Do these warnings mean anything?
Im getting them a bunch but im not sure how to fix them or if I should be worried about them
nope because i immediately stop processing, its probably something else going wrong and thats tripping the log
Oh gotcha!
Thank you!
Im having ab unch of random errors and it can be hard to discern what is real and not sometimes.
I should still try to figure out the cause though
Hopefully you can find out why the Apparatus is bugging for clients lol
its probably a base game thing
There a reason why every entry seems to have two?
thats old debug logs for me cause i broke the matching lol
so which one is correct? lol
just dont worry about them
Well I do kinda want to log a few of them down, yknow?
I would say that but it didn't happen with 0.1.3, granted 0.1.3 didn't play the LR sound properly at all
So apparently of this mod gets updated to any version above 0.1.3 it just completely crashes my computer somehow, and downgrading it makes it work just fine
On the newest it just hangs my computer for a good few mins before it actually loads
Probably something to do with the threaded loading
Possibly
sounds like it's gonna be a pain in the ass for bongo to figure out, the typical issue of it working on the dev's pc but not on others' 😭
Weird, it does the same thing with multithreading disabled in the config
try decreasing the amount of threads
the other config option there
Yeah ill do that when I get back control of my pc lol
the multithreading config option doesn't actually disable multithreading, it just forces it to wait for the threads to finish before letting other mods run
should make that clearer or just do the intended behaviour lol
Dropping thread count from 32 to 16 makes it much more manageable
And loads quicker for me
yeah i kinda wanted to make it automatic but idk
btw 4 threads is perfectly fine (it was actually the old default)
i dropped it to 8 because my cpu is 8 thread
yeah that seems like the number i should be using
ill eventually get an update out for that
might be worth testing with an unreasonable number of threads to see if you can reproduce the issue
I'm wondering if this load of the "active" field might have been reordered
yeah kinda put 32 forgetting that not everybody has an expensive computer
now that youre here what is the difference between Volitale and Interlocked?
I wouldn't have really expected it to given the Volatile.Read but I'm not entirely sure
Interlocked is basically just lower-level it seems like
Volatile.Read(ref f) is like
Interlocked.MemoryBarrier();
f
all that said, I think that it might be worth reworking the thread pool class to reuse threads
yeah most definitely
starting threads is costly, you might see a bit of an improvement in the loading time if you start x threads and then have them pull directly from the queue until it's exhausted
technically neither is really a thread pool since thread pools are persistent generally, but that's just semantics
I would refer to it as a parallel operations
well i was using the c# thread pool but i wanted to join and block at the end of the chainloader
right yeah
if you have your class spawn the threads and have those consume from the queue, you can implement your join as checking and yielding until all the actions are gone
I'm wondering what's causing the CPU spinning though, if it's hitting 100% usage across all cores that seems to indicate the threads themselves are spinning and not just the control one
if it's just one core doing it then it would make sense that the if(active >= max) continue; is causing it
(you can also make the Join() method pull from the queue to keep the main thread busy while it's waiting for things to finish)
setting the config to 9999 did slow it down didn't cause a crash though
huh, curious
I wonder if it depends on what sound packs are installed, did you get a code from anyone with the issue?
itd most likely just be lethal resonance as thats the most popular mod that uses this api
would be curious what CPU brands you have vs them
well the fact that it locks up makes me think it might be something to do with the microcode optimizations
okay whatever i did just then my computer did not like
oh nice
it might be intermittent given that this is threaded tbf
did you just retry or did you change something?
changed to
public void Start() {
timer = Stopwatch.StartNew();
for(int i = 0; i < Mathf.Min(max, ActionQueue.Count); i++) {
new Thread(new ThreadStart(RunThroughQueue)).Start();
SoundPlugin.logger.LogDebug("[Multithreading] Started thread " + i + "/" + max);
}
}
public void Join() {
SoundPlugin.logger.LogDebug("[Multithreading] Joined JoinableThreadPool.");
RunThroughQueue();
}
void RunThroughQueue() {
while(ActionQueue.Count > 0) {
if(!ActionQueue.TryDequeue(out Action action)) {
continue;
}
try {
action();
} catch(Exception ex) {
SoundPlugin.logger.LogError(ex);
}
Thread.Yield();
SoundPlugin.logger.LogDebug("[Multithreading] Finished processing an action.");
}
}
basically tried to implement what you said
is Join() being called here?
oh, it might help to change it to while (ActionQueue.TryDequeue(out Action action))
(and remove the if statement calling TryDequeue)
it's fairly common for getting the count of a multithreaded queue to be inaccurate, not sure if that's what's happening here
ah i was planning to look at that because it felt like i could do that
wasn't also entirely sure if that would return false if it somehow errored out though
yeah it should only fail if the collection is empty
there's a race condition between two threads where one could read from Count and see it as 1, another reads and sees 1, then the first dequeues and sets Count to 0, second one dequeues and fails, continuing the loop
not sure if/how that would cause it to spin though
it should exit on the next iteration
adding this delay helped a lot
interesting...
do you have a copy of the game with debug enabled? it could give a clue as to what's causing the spinning if you can reproduce with VS attached
no and i dont have time before i have to go unfortuneatly
ah damn
ill try when i get back
Whats this about again? It works perfectly fine on my end
On another note, the meltdown explosion sound doesn't seem to get picked up by soundapi
LR scripts might need updating if spelling was corrected but improper spelling isn't converted over to work?
it would yeah
it should
should be like FacilityExplosion:final explosion
Nothing in logs. The alarms and music wasn’t recorded either.
I tried to replace the explosion sound a while ago but never got it to work
well i know for a fact replacing the music works
Log levels set to all, everything else appeared fine
@fiery arrow could you try FacilityExplosion:final explosion
i have the thing set to playonawake so cant wait for it to be related to that
Exactly what I had 
that helped a bit I think but there's still something going on occasionally. I'd say even with an unreasonable amount of threads my system shouldn't be freezing to where I can't move my mouse cursor or see any display updates for several minutes. It behaves like running a benchmark/stress test on windows realtime priority. 9700k, 8cores no Hyperthreading (4.8GHz).
OccludeAudio.Update error got spammed a couple thousand times in my log while testing my mod list 
i’ve had that happen prior to the 1.0.0 update
usually when i end/exit the game lobby and come back to the main menu
i didn’t notice any obvious issues ingame. when i loaded into a lobby again, the error spam stops.
i wasn’t too sure which mod was causing it, but i didn’t bother looking into it since it wasn’t causing noticeable issues and i already have my hands full with more blatant bugs from other mods.
never had any audio issues
Yeah, I didn't notice anything breaking on my end either. Just got worried about whether or not it's a problem I should try to fix or not
same im having that problem too
yeah zaggy is helping me try and track it down, just hard considering I don't have bad hardware anymore
I'm fairly certain this is a base game bug
I consider this an insult xD
||nw jk||
well having a high end pc and a high end laptop really makes this hard lol
yeah, if you're able to get the freeze with VS's Unity debugger connected you can pause execution and check what each thread is doing, should tell us what's going on
bro doesn't know about Task 💀
eh?
i got a real crappy laptop if you need an extra test subject. assuming the battery still works
the sound a mask makes when it takes control of you after youve held it up to your face for long enough is also not logged @cinder jolt
im like 80% sure that this doesn't help
@cinder jolt yeah im noticing more and more sounds not being picked up
Hoarding bug has nothing in console, football has nothing in consolee
Sounds are still getting replaced, so I think you just messed up logging :P
hey i was wondering if you could help with setting up a mod
what with?
The SoundAPI wiki is confusing to me and im just trying to change the masked enemy audios
whats confusing about it? have you gotten a sound pack to be registered?
I have the basics down of making a simple sound pack, but the rest is confusing like idk how to add the config parameter, im guessing its another .json file but idk
And my soundpack.json didnt generate a config file?
you define a config under your soundpack.json
it should if you defined it correctly
How? 
eg heres the soundpack.json from lr
{
"name": "LethalResonance",
"load_on_startup": ["menu"],
"config": {
"EnabledSounds:menu_theme": {
"description": "Enable LR menu theme? (AbientPackMusic compatible)",
"default": true
},
"EnabledSounds:ambience_music": {
"description": "Enable LR main ambience music? (AbientPackMusic compatible)",
"default": true
},
"EnabledSounds:day_music": {
"description": "Enable LR main day music? (AbientPackMusic compatible)",
"default": true
},
"EnabledSounds:scanner_pixel": {
"description": "Enable Pixel Scan? (Ensure moroxide_scan is disabled to make it work)",
"default": false
},
"EnabledSounds:scanner_moroxide": {
"description": "Enable Moroxide Scan? (Ensure pixel_scan is disabled to make it work)",
"default": false
},
"EnabledSounds:menu": {
"description": "Enable LR menu sounds?",
"default": true
},
"EnabledSounds:ambience_inside": {
"description": "Enable LR interior ambience sounds?",
"default": true
},
Where would i find the config file
in the regular config spot
help 
im doing other stuff migth be able to get to it later
What can i add to the audio happen more frequently
weight only applies to your replaced sounds
youre only replacing one sound
so if the game plays MaskCry2 it wont be replaced
two ways:
- duplicate it and just change the matches (bad, copy and pasting code)
or
- change matches to do multiple matching tutorial
so id basically do this:
"matches": ["VoiceSFX:MaskCry1", "VoiceSFX:MaskCry2", "VoiceSFX:MaskCry3", etc, etc]
"sounds": < sound1, sound2 >
Cause i have different sounds for different matches
and the weight would then actually matter?
and so i dont forget, how would i then pack this to upload?
yeah when you have multiple sounds
look at the links on this page, it'll show you the format it expects for when you upload
https://thunderstore.io/c/lethal-company/create/
Does this look somewhat right?
the sounds fields are wrong, should look like
{
"sound": "maskedenemy/MaskCry.wav"
}
not just maskedenemy/MaskCry.wav
also if everything has the same weight; weight doesn't matter so you could remove it here
Is there something I can add to make each sound play more frequently? Like whenever they move it can play the audio
wdym
Like the sounds the masked enemies dont play as often as i want, is there a command or code i can add that makes the sounds play more often
like the vanilla sounds still playimg?
if that happens you havent told soundapi to replace them
No the modded sounds are playing but i want them to play more often
Like a zombie that cant shut up
no that isnt possible
Dang
How do i make it networked 
there is techincally a way but it probably isnt worh it
So i should just upload it to thunderstore then?
You could connect it to the footstep sounds of the masked. It would sorta increase the frequency
That sounds hard
It's the same thing you've presumably already done, just using their footsteps instead
The most you'll have to do is combine the footstep sounds with whatever sound you want to add into a single sound file
how so
this mod has been making me want to wind the jester up yk
You're adding the masked voice sounds to the footsteps so they play more often. That means you have to get a DAW (audacity for example) and add the mask sounds you want to replace to the footstep sounds, and then replace the footstep sounds with the newly created combination.
This is what I did with my giant sounds, do the same thing with the masked.
hi i'm james woods hi i'm james woods hi i'm james woods hi i'm james woods
This is basically what it sounded like before the 1.0 patch of soundapi yeah 
Im more of a visual learner so this stuff is really confusing since theres not that many guides out
Same so I have no idea what I'm doing here lol, after moving things around quite a bit this finally didn't produce any errors in the console but it's still not working. What's the proper format for conditions supposed to be? (sorry if it's a mess, very little programming experience here
)
{ "condition": { "type": "LethalCompany:player_location", "value": "inside" }, "replacements": [ { "matches": "MeltdownHandler:music", "sounds": [ { "sound": "MELTDOWN.wav" } ] } ], "condition": { "type": "LethalCompany:player_location", "value": "outside" }, "condition": { "type": "not", "condition": { "type": "PlayerLocationType", "value": "on_ship" } }, "replacements": [ { "matches": "MeltdownHandler:music", "sounds": [ { "sound": "OUTSIDEMELTDOWN.wav" } ] } ], "condition": { "type": "LethalCompany:player_location", "value": "on_ship" }, "replacements": [ { "matches": "MeltdownHandler:music", "sounds": [ { "sound": "SHIPMELTDOWN.wav" } ] } ] }
{
"update_every_frame": true,
"replacements": [
{
"matches": "MeltdownHandler:music",
"sounds": [
{
"sound": "meltdown_inside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "inside"
}
},
{
"sound": "meltdown_outside.ogg",
"condition": {
"type": "PlayerLocationType",
"location": "outside"
}
}
]
}
]
}
the conditions go in the same place as the sounds, make sure to enable update_every_frame as well
Noted, thanks
Figured I'd see if I can do a sort-of workaround and share it while waiting for the official port to come out, will see what I can do
When I use "PlayerLocationType" I get errors, but when I use "LethalCompany:player_location" it seems to load up fine.
oh yeah i changed it but i havent changed that example lol
ahh, so that's an old way that isn't applicable anymore then?
Awesome, that did it. Going to double check it's compatible with all my mods and see if I can figure out how to upload it lol
@cinder jolt
Heyo Bongo!
Question for you. Is it possible to use LoaforcsSoundAPI to change the sounds on a specific moon or interior? If not, could this be done?
yes
I ask because I would like to change the skins and sounds of certain Monsters in Shattered Company based on locale.
Woot!
Would you mind if I bug you when you have time, maybe on the weekend to figure out how to do that?
yeah thats fine
Hello Bongo
I've been doing the LR Meltdown port
But it seems that I've got some issues, can you help me?
dont ask to ask my friend
k, I think there's a overlap with the main Facility Meltdown sounds and the LR Meltdown
The explosion sound can't be heard
And the tester didn't found any difference about location sounds
if you're talking about the voice lines it's cause they're not in the music audio they are a seperate thing
@cinder jolt So I've managed to make it work to a certain extent - if I can get it to keep the folder structure... I've tried uploading the package twice now but whenever I try installing it with r2modman it takes everything out of the subfolders, which makes your mod not recognize it. It just says something like "Congrats you've made a sound pack, continue following the tutorial to learn how to add sounds!" or something. With the proper folder structure it doesn't do that though, it seems to load up fine. I know it uploaded okay online because if I manually download it off the page the folders are there, so I have no idea what the deal is. Maybe r2modman just doesn't like me, I don't know.
what does the folder structure look like?
I just copied what you had in your example and what I saw from Lethal Resonance, main pack contents with the main folder, the sound pack json and sounds and replacers folders in the main folder
the final json in replacers
youve gotta do BepInEx/plugins/CustomMeltdownMusic
right, it's under BepInEx/plugins
no idea how it goes from that to this, i mean i took those screenshots right from the zip, is there some reason a mod manager wouldn't keep it like that? double checked all the uploading instructions and i'm pretty sure i didn't miss anything...
basically r2modman will unpack the first folder in the dependency tree your zip file should look like this:
- BepInEx
- Plugins
- CustomMeltdownMusic
- soundpack.json
- other loaforcsSoundAPI stuff
- manfiest.json
- icon.png
- other mod upload stuff
ohh wait i get it now, thanks for the visual structure there. gotta rename the stuff like that. got it.
You don’t need the BepInEx folder fwiw
ah yeah ig that makes sense
same thing happened to me, and Dahlia's is the latest mention of this issue occurring
I assume its nothing but its still worrisome
ok, it's not working for me
Loaf please I need the logging fixed
terrria 😋
wdym?
welp, my attempt to port the LR Meltdown in the SoundAPI doesn't work
sure
@cinder jolt New SoundAPI update brokey
I got the main menu theme to play for like 1 second then pure silence
the entire menumanager object commits die when loaded for longer than 1 second
so... do I.... update? ... .,.
Y'know-... I'mma play it safe 'n probably put a pause on updating basically everything until 50 drops 😅 ...
only update if you need to get logs, otherwise dont
@cinder jolt a lot of sounds don't work properly after the new update what did you do? I had a lot of times where footsteps were silent, and turrets were silent etc
i moved some stuff around quickly to help some errors on content warning
probably broke stuff
You broke it lol maybe you should push an update that reverts back to previous build XD
nah cause it works on content wraning for some reason but not lc
Well then maybe revert LC build?
Love that @wanton pine popped in at perfect timing for this XD https://clips.twitch.tv/HomelySucculentCurlewVoteNay-ADhBCE8OAzB3eAKr
I love how it just so briefly plays the main menu theme then it's like "No more"
@dark crypt Also had issues with stuttering on her end when audio issues happened btw
Yeah my game froze up multiple times, I started losing sound effects at times, and someone else was completely deaf for a bit
Yeah
"Okay I pull up" instantly plays in my head every time
I notice you didn't post a changelog for 1.0.7 btw
- reverted changes made for content warning in lc build
Btw you like that clip of the sound just cutting off at the menu XD
I wonder why the changes broke for LC, Content Warning must just work differently
lc and content warning's sound system are very different lol
you know those null warnings about OnSceneLoaded, literally my entire console was full of those in content warning