#Mirage
1 messages Β· Page 29 of 1
ah. well hopefully its stuff thats easy detectable and there are other mods to fix those things xD
but yea maskfixes + butteryfixes + lethalfixes + maskedinvisfix, all good together
@deft cape could you change the dependency of https://thunderstore.io/c/lethal-company/p/VirusTLNR/MaskedFixes/ to https://thunderstore.io/c/lethal-company/p/VirusTLNR/MaskedInvisFix/
[V69]Replace with MaskedInvisFix -> https://thunderstore.io/c/lethal-company/p/VirusTLNR/MaskedInvisFix/ (ive added it as a dependency to this mod, so if your reading this, just remove this mod and leave MaskedInvisFix installed!
he's already said he's getting to it when he gets to it
It has a few bugs here and there, but nothing game breaking. Still works well for the settings I use it for. TBH its a staple for my pack. I've removed it before we all can tell the difference right away and hate it. So the little bugs that pop up are worth the trade off. The desyncs we encounter are usually very rare and my players know that if a desync happens with a monitor to just go off of what I see. What other issues do you experience with GI?
Shaosil finally returned so hopefully we'll get some fixes soon
Doesn't answer my question....
What are the issues you are having with GI specifically? So I know what to look into on my pack.
Mostly the monitors sometimes desycning and not updating and the flashlight bulbs not working which Shaosil has been made aware of
Most other features I replaced with other mods
Flashlight Bulbs not working?
Yeah, they're always dark even when turned on that is an oversight from when he merged FlashlightFixes apparently
I'm a have to run some tests on that cause I never noticed it.
not important but id like a config to stop seeing this
π
I could stroll out at night like its my back yard!! Its just that i saw Rich on a hill. he was over on the orther side of the river. but that was three days ago.
i was playing with mirage on the last version and my cat stept on my power cord
couldnt replicate after uninstalling
dog ate the logs
please do better
Even though maskedfixes has been marked as deprecated, Mirage still regards it as a pre-mod.
#1200695291972685926 message
its known. barch hasnt updated since i depreceated it and replaced it with a different mod name.
i should add, its safe to leave "MaskedFixes" installed., just remove it once its no longer a dependency π
You can do that yourself in the configs for BepinEx. You can change what types of logs appear in the box or even turn the box off completely which helps improve performance. Just remember to turn it back on when trying to reproduce a bug for the error logs.
Wait are you running Mirage and Skinwalker??? Is there a point in running both?!?!
Also now that I saw correctly. That is a different mod, and you are posting in the wrong thread.
https://discord.com/channels/1168655651455639582/1181846289458135080
Please post issues in the correct mod threads as Mirage has nothing to do with that mod. But refer to my above message to fix your issue though.
not trolling just stupid mixed up
Tbh you're better off replacing it with Mirage. I don't know if Skinwalkers is still being maintained or not, but Mirage has been and works very well.
i use these mods interchangeably in a host only setting where any random player can join depending on what mod is having more issues at the moment skinwalkers or mirage
i was testing with mirage the other day to see if compatibility checker was still locking people out for not having it
it isnt
i run skinwalkers cause only 1 in 20 players ever randomly join with mirage active
dont need it to sync up if nobody is joining with it
We recently had the idea to recreate Lethal Internship with mirage-like features. We seem to be close to figuring out how to spawn player bodies and move player ears around host only. We also may need the host to be teleported around to store and play sounds from anything tho. clients cant seem to be lied to about where other player voices are so it have to tp the host around
idk how hard it was to make this stuff work normaly but making it host only is gonna be a huge pain
when we try to recreate mods its done with modders who learned to code from lethal company and its always a complete rewrite cause host only things are dumb and hard to make and nobody else makes them but we like playing in public
compat checker will sometimes flag up mods as "not there" because the game is opened as soon as the profile has been downloaded, best to restart game a few times, then it usually fixes the issue.
yea mirage used to have a compatability level that would grey out the join button if the host had it but you didnt
i remember asking for it to be removed cause i only ever had an issue when compatibility checker was there to say no
mirage usually never breaks anybody's game and those who dont have the mod dont need it that compatibility level was just destroying the amount of random joins we would normally get back then
"I don't want the maintenance burden that comes with porting someone else's code"
thanks.. the burden shall be all mine π’ (i am joking dw xD when i made the fix i realised id probably need to update it if nessecery :P)
at least now i can remove my own depreceated mod from my mod profile π β€οΈ
how to download mirage core? like where to move these mods:
Probs you're best off grabbing a mod manager of some sort to reduce risk of user error
I personally like gale
Otherwise miragecore isn't an empty mod, you're gonna want to grab miragecore itself and install its dependencies the same as any other mod you'd install
I don't really like mod managers because they are downloaded to the C drive.
You can install them elsewhere...
They let you pick the drive
Same with any basic program
literally the 3rd thing you can find in the settings
i was gonna say
doesn't it have an installer that lets you choose directory
atp if a program doesn't let you choose where to install it that's kinda shady anyways
you can choose where the mod manager is installed, where the mod library is and where it looks for steam
we can help with that
after that you just hit download for mirage and all the dependencies will be installed immediately on their own
I could've sworn Mirage used to have a feature where if you die and (optionally) you're alone, there's a chance you become a Masked, but I can't find it in the current configs
Did this get removed or moved to another mod, or am I just not seeing it?
It was split into its own mod, just add it in π https://thunderstore.io/c/lethal-company/p/qwbarch/MirageRevive/
What is the name of the mod so that Masked enemy can take items?
would it be possible for mirage to add player tags to masked?
removing them from everyone makes everyone paranoid, adding them to masked would be a nice change
GeneralImprovements adds that
And I've not had issues with that
that's pretty cool, does it do the person its mimicking though?
also been advised to not use GI
GI modder is back and he fixed everything
I advise to use GI :]
splendid
and yes
make sure to have the cfg like this to make Mirage and GI Compatible
you can change the scrap icon chance, but everything else I advise to let Mirage do it
Is there a mod for enemies with masks to copy cosmetics?
morecompany does it by default, mirage just assigns players to naturally spawned masked
edit : i got the answer ty :)
i asked a question there but jsut incase u didnt see @deft cape #1191847266777042985 message
is it not possible to use that settings in lethalconfig(and without restarting the game) ?
also what is this masked at the back
they walk funny
they kinda walked like this lol
lethalconfig's options are backed by ConfigEntrys whereas for LethalSettings i can programatically do whatever i want whenever a value changes.
although maybe lethalconfig's added something by now to allow what LethalSettings does, but either way i'm sticking to using LethalSettings for per-player settings to have an obvious distinction, since LethalConfig is associated to modifying the config directly and that's always going to be synced when sharing profile codes
I remember player default model legs or hands going funky but dang this masked are dedicated
he got a bit mad
Disabling LethalSettings is ok right? It just introduces some errors that I'm trying to keep down at a minimum
It shouldn't be causing errors
if you have imperium tho, that will make lethal settings throw errors
lethalsettings also doesn't like facilitymeltdown if you have that
oh wow, this explains a lot... lethalsettings basically doesn't function at all with meltdown installed
does making this false mean that the only people that get their voice mimic'd is if they are dead?
like you'll never ever hear an enemy use the voice of a player who is still alive

Im pretty sure true means that youll be able to hear a mimic mimicking your own voice while your alive
And false only while youre dead
so making it false is basically this?
Youβll still hear other players
Its only about your own voice
oh your own voice
i was hoping there would be a setting to make the mimicing more realistic by only mimicing dead people
or even better only mimicing a player that they've killed making it more creepy
Yea just ended up disabling Lethal Settings, doesn't seem to affect any core features of Mirage
Is it normal that if i play alone i only hear the skinwalkers mimic my voice of all the recordings it has ever saved? can i change that?
so it only plays the recordings of other players when theyre present in the game?
i thought it saves all recordings in general that were ever recorded (my "never delete recordings" option is turned on). in multiplayer with my friends i also here their skinwalkers but in single player i only hear my voice being mimiced
it will only play voice lines from the player it's mimicking, so if you're the only player then that's why
in mirage, audio is saved on the users computer it was recorded from, and when a masked mimicks how you look, it uses your voice, for other enemies i assumeits randomly chosen which voice, but it can only take audio from people in the game who it is mimicking.
yea but in my case with the option "never delete recordings" (which inlcude other players) i expected these were saved locally as well. so in multiplayer it syncs between the clients so that other voices are hearable as well?
mirage is incompatible with MaskFixes due to mirage mimicking player suits, MaskFixes can't do the random suits/tragedy masks
is there something in the config for that?
which one?
uh, nah
sad
there's nothing in mirage's config to prevent mimicking appearences, and maskfixes just has configs for what suits masked can wear and the chance of a tragedy masked spawning
so all qwbarch needs to do is make a config option to disable/enable certain aspects of the appearence mimicking
this is news to me, what does the incompatability cause?
maskfixes random suit/tragedy mask to not happen
preventing random suits make sense, but why does it stop the tragedy masks?
I mean, adding random suits and masks is against what mirage is all about so it makes sense
we still don't know
it might be odd rng math with the tragedy/comedy picker though
MaskFixes just had an update for that no?
yep
uh i could add an option to make masked not copy suits, but that sounds so pointless since voices wont match with suits anymore
would be a super easy change so i guess it doesnt hurt to add it, other than cluttering the config yet again π
@eternal bridge pinging just so u know
recordings are only created and saved for the player itself, so your pc only has your own recordings
you can read more about it here: https://github.com/qwbarch/mirage/discussions/94
my god that config name is long.. kinda wanna shorten it but that'd mean breaking people's configs
i dont know how to do it (right this second)
but, there is code for removing "unneeded" configs
so, im sure there is possibility to take the value for a config.. from a recently removed config, with the specified name? just a thought π
edit- wait thats for lethalconfig stuff, not sure it works with lethal settings stuff XD
true could do that, but i also dont like the idea of having "transitional" code stuck in my codebase for awhile π
thats the regular config so it falls under lethalconfig
although i wouldnt be touching lethalconfig at all
nah, i just meant not sure it works for lethal settings stuff
for lethal settings it'd be straightforward since lethalsettings is just a gui over whatever data you set
so i can change the gui text without it affecting anything
what dose mirage revive actualy do?
if it revives the players and not just spwaning masks i have to exclude it from my host pack
revive mods never work host only
they always cause the most confusing bugs
one of the reasons why we making custom anticheat cause users with revive crap breaks my lobby
gotta prevenent ghostmode users n such
it has a misleading name
players that die have a chance to come back to life as a masked
it's needed on all clients as stated on the mod page
@north escarp oh those warning logs just happens whenever the game lags IIRC, so it's actually not a mirage issue like i thought it was
should be a non-issue (unless you're noticeably having issues with voice chat)
i could be wrong, but iirc the main thing that causes the dissonance thread to lag is mainly due to garbage collection
so any mod that generates a lot of objects on the heap ends up contributing to the dissonance pipeline being reset
i get it a lot when lan testing, it probably doesnt like constant tabbing out either
ah yeah it probably really just is a non-issue then
These are warnings ? They are marked as errors
But why does it prevent leaving the game ?
are you not talking about this?
[Warning: Unity Log] [Dissonance:Recording] (17:24:05.377) BasicMicrophoneCapture: Insufficient buffer space, requested 71520, clamped to 16383 (dropping 55137 samples)
[Warning: Unity Log] [Dissonance:Recording] (17:24:05.377) BasePreprocessingPipeline: Lost 480 samples in the preprocessor (buffer full), injecting silence to compensate
[Warning: Unity Log] [Dissonance:Recording] (17:24:05.377) BasePreprocessingPipeline: Lost 480 samples in the preprocessor (buffer full), injecting silence to compensate
[Warning: Unity Log] [Dissonance:Recording] (17:24:05.377) BasePreprocessingPipeline: Lost 480 samples in the preprocessor (buffer full), injecting silence to compensate
this is like the only mention of dissonance in the log
i can say for certain that's not a mirage issue though, or i would've seen a report about it by now
Nope
I see..
do you have an idea where this dissonance issue could come from ?
i mean idk what you're even referring to anymore π
that's the only thing that pops up when i ctrl + f for dissonance in your log
wait
i think i was looking at the wrong log LMAO
lemme check again
hmmm nope same thing, i only see the warning logs
@north escarp can u copy + paste the exact thing ur looking at
just so we're on the same page
My bad @deft cape
I forgot to set "Unity logs to file" to true
So no logs for you
my bad
oh no wonder im not seeing anything lmao
i have absolutely no clue what could be causing that ngl
(because of Wildcard)
but that's 100% not mirage
i'd just start with the usual: look through which mods u updated since it broke and try disabling some

i don't have the full logs of my modpack sadly
It might be
DissonanceLagFix
I'll try to disable it and retry with my friends
doesnt mirage include the dissonance lag fix code
was that the halo error spam
yeah it does
it's not dissonance lag fix
that only disables dissonance logs
(which should also include those pipeline reset warning logs, so im confused why it's even showing up)
Question: Is it default behavior in this mod for a player to be revived as a masked player when they die to whatever cause?
if you have mirage revive, it has a chance to revive you as a masked player when you die alone
it's not included in the base mod anymore
Hmm...
btw out of curiosity, who here even wants a config option that'll not set the masked's appearance to the player?
i'm just trying to see how many ppl are actually going to, e.g., use MaskFix's randomize suit option with mirage
i could add it pretty easily, but at the same time im too lazy to do it if nobody's even gonna use it
I haven't disabled the setting on my side
I always have the mimics taking the skins
i don't think i'd use maskfixes random suit
oh i meant i haven't added the config option yet, just gauging interest to see if it's worth even touching
i did see something about mirage stopping maskfixes from randomly applying tragedy mask instead though
same, i personally think it's pointless but if enough people want it i'll add a config option either way
idk if that's for me to fix tbh
that's probably on the side of maskfix to look at
from my pov, the setting would be nice, but imho, if someone is using random suits, i dont get why they would not use mimicking instead.
does mirage use AI?
it was planed iirc but scraped
It was just gonna be plugging into ChatGPT (or a locally run algorithm) to figure out which of the saved voicelines would best match with what other players were saying
ah
I see
but so far its the same as it used to be?+
since it seems to be updated very often (which is good ofc just not sure what has changed, I havent played lc in a long time)
Yeah that'll make lots of lags since ChatGPT is a bit slow
The best is just to keep it this way
It's already a little hard to figure out if someone is a mimic or not lmao
Sometimes, usually you can tell immediately
just say lines like "I'm not a mimic let me in" and stuff like that when you venture into the facility alone :P
and then hope the mimics choose these lines when fit
is there some way to make it a chance for mimics to not have the mask?
not currently, although feel free to open a PR if you'd like to contribute (i don't work on feature requests anymore)
sounds good, unfortunately i suck so itll be a few months if at all
it was using transformers locally so performance was good actually, at least with cuda enabled (i don't remember what performance is like on CPU only but i imagine it'd take a large hit)
figuring out how to bundle cuda properly and a bunch of other things took too much time so oeis and i dropped it, since we're just both busy irl and we were also feeling pretty heavy burnout on the project
yeah no worries π
the AI changes for v2 was optional anyways, so people who wanted to stick to random voices would've been unaffected
(I have an AMD gpu)
Honestly the ai thing reallyyyy looks like a totally cosmetic thing
for v2 it was supposed to (and was implemented) support having the host transcribe audio for other clients, so as long as one person had access to cuda it was theoretically good enough
i disagree on it not being as good as randomized voices but i get that's subjective
was pretty sick to see it working, but sadly it's too much work to finish so it was scrapped
ngl I was a lil worried about it using a different "method" than skinwalkers, which had some great moments back in the day, but I think mirage has had better "rng"(?) with choosing clips to play back. In the week my friends have played with it people have been baited more by mirage voicelines than for months of playing with skinwalkers. Maybe that's placebo but it's very well done! The synced lines make it all the better ofc.
I've seen a demo or two of ai generated voices and while it's a super cool concept I've noticed the voicelines are always a bit stiff and unconvincing. Usually people are yelling or carrying on dramatically in LC so a monotone chatgpt voiceline seems out of place.
Just saying unless that tone issue could also be fixed dynamically it may have also been a lot of work for not as great of a payoff as possible with current technology.
What I mean is that it's not an essential feature
Yeah it sounds fair enough
Too bad you can't use .NET9 while modding
.NET9 has some crazy shit for AI
tone was not an issue for v2 simply because it doesnt generate voices. how it worked was that it records voicelines and transcribes what the player says and then feeds the text to a model, and then when the player speaks again, the model looks for the closest match of how the player responded in the past. if a recording exists, it uses that recording. if a recording doesn't exist, well, it was supposed to have a sensible default but that part still needed tweaking
simply put, v2 didn't use libraries like xtts because the generated voice sounds worse than if we just recorded voices with randomized playback to begin with
(not that any of this is relevant anymore, but just so u get an idea of what was being worked on)
im not even aware of this at all π€
although it wouldn't have affected v2 since we were using python libraries like whisper and sentence transformers
I see
Ah I see, very interesting ty for clarifying. Perhaps someone else would be interested in taking up the project some time then, seems like a very promising evolution of the skinwalker concept!
sadly v2 is completed undocumented so it wouldn't be easy to pass the torch to someone else, not to mention all the subtle bugs that existed which would confuse anyone unfamiliar with the codebase π
if someone crazy enough comes along, they will find a way π€
Does anyone know why I get this error? I just installed the Mirage mod and I get this error when I start the game.
If you have facility meltdown, lethalsettings doesn't like that mod
It's mostly harmless unless you want to actually use the settings
aaah, ok, gracias
Does the spawn "Enable spawn control masked enemies" affect the "Max spawned masked enemies"?
if i remember right the max spawn config is only enabled if custom spawns is enabled
it should be noted in the config though
yea probably this
It's kinda unclear in the config. It sounds like the spawn chance is the only thing affected with that option enabled disabled. So I don't ahve to change the 2 if I don't mess with that option?
shouldn't need to if i remember right at least
Is there any way, or mod, to allow masked to hold items? I think that's really the only thing left somewhat giving them away (aside from janky movement ig) is that they're always emptyhanded
Lethal Intelligence allows some masked to hold items (and do a few other things)
Ah yes ty I had heard there was some issues with that though? + (at least imo) the ai is totally fine for what it needs to be atm
What I'm saying is just having them hold items as a visual thing. Maybe like a config option and a configured percentage chance that they hold particular items when they spawn. Like 50% chance they have nothing, 30% they have a flashlight, 10% they have a walkie in their hand, 5% shotgun, etc.
Doesn't seem like anything does that though, would you be willing/interesting in adding that to mirage qwbarch? After all they can already do a similar thing with phones using lethalphones.
If there is an issue, do let me know, I think I know of one minor issue affecting fire exits, otherwise afaik, there is nothing majorly outstanding atm.
As for janky masked movement, thats a vanilla function which I disabled.
Maybe I can release a simpler mod that patches those things out of masked but doesn't touch ai, which would be incompatible with LI but makes masked (hopefully) act a bit less janky. (The random look bullshit is what does my head in tbh)
Dat would be coolio, also btw I meant no shade on your mod I haven't actually tried it in my pack! It was just enough of a balancing act to get GI/Mirage/MEOF to work lol and I read there were some issues in here at some point. Big agree on the random looking around.
Most of my frens are still fooled decently well by masked though, like I said its just the tell of always holding nothing whereas a player always holds a flashlight or other item to show they're not a masked
Stealing items or picking them up does sound cool but I think it'll come with other complications. If they could just have an item sometimes cosmetically to make holding an item less of a 100% tell you aren't a masked that's all I'm saying.
Mimicked masked with certain mods installed (reserved slots? Hot bar plus? One of them) puts items on the body like a player would have.
Oh I totally agree, masked picking up items is a pain in the ass, it's the area of code I wished I had never touched.
But as a simple masked "upgrade" mod, I could probably give masked a fake item, make them stop.looking around stupidly, and then when they wish to attack, the item would no longer be in their hands so it looks more normal.
But if I did that I'd have to find time to work on it.
Oooh I'm curious as to which mod it is...
I think its reservedflashlightslot gives them the light on their shoulder. I considered getting it for that but I already use hotbarplus, don't really care for the shoulder light, and it doesn't really solve the issue of empty handed amoguses vs players holding tools
@deft cape Can you remove the LethalSettings required dependency and make it an optional dependency instead? It doesn't make sense to require LethalSettings considering LethalConfig is significantly better
not possible
.
LethalSettings is needed for some extra settings that LethalConfig can't do
these settings exactly
ahh. That's messed up then
why is this not being brought up to the developer of LethalConfig?
cuz it is not something that LethalConfig can do on how does it works
and it's not possible for them to add it as functionality for mods to utilise?
not possible
at least atm
lethal config saves the settings within your mod configs, which transfers to other players, lethal settings allows you to retain you own personal settings for a mod (if i understand correctly) even if you switch to a different mod profile.
that being said, i wish it was a soft dependency (ie, we are forced to download it with mirage, but can remove it if we so choose :P)
actually lethal settings is already a soft dependency in the sense that not having it installed still works with mirage, you and your players just won't be able to adjust their per-player settings anymore
the reason why it's set as a dependency on thunderstore is because it's the intended user experience
unlike curseforge there's no option to set a soft dependency as a package on the site
so it'll have to stay like that
but yeah moroxide and Virus already explained it but in short, LethalConfig lets you adjust your config files in game whereas LethalSettings lets me present my own settings menu and do whatever with it programmatically
they serve two different purposes
unless it's super easy to do it's unlikely since i don't really spend much time on this mod anymore π
but if i look into it and it looks simple enough, i could add it
np ty for the consideration!
@ionic shoal since you've done that already, how much work is it to make masked carry a random item? do masked have a held item field where i can just set an item to it or does it require more work (like attaching animations or w/e to it)?
erm, good question.
if the animation pack LI has was available.. it would be just spawning an item.. in the right place, and use the animation in the bundle LI uses.
dont know if this will share the code, or send it as a file, hope as a file.. but this is the basics of how i generated a fake item and gave it to the masked.
it has a lot of extra bs in there (like i allowed them to pocket said item, as long as no player was watching them, etc.. and there is some code for LI activities/focuses
oh and i was making it so they had multiple items (i beleive, a piece of scrap, an equipment, and maybe the third was an empty hand.. so they could switch between them to be more beleiveable.. but i d k, been a long time since i looked at this.
regarding the animations.. this is basically how item carrying animations are handled.
if you were looking to do this stuff yourself i would happily help if you let me know what you need xD
oh if it requires adding all those animations i'm just gonna pass on implementing it
i appreciate all those snippets though π₯Ί
they are all in in the bundle in LI/MaskedAIRevamp if they arent vanilla animations. (ie, you would only need the above triggers to activate them when the item your giving the masked is held, and reset it when the item is not held (if they were to put away their item)
ah ic if it's not too many different animations that's not too bad then
i just got a bit scared thinking there's a whole list of things to hardcode π
Hey guys i cant find the folder where mirage stores the recorded audio clips.. can anyone tell me real quick? i checked the mirage folder
@wind crown it should be there, it's supposed to be in LethalCompany/Mirage/Recordings
first i thought its in the mod profile folder. but its also not in the original game directory under mirage
mirage deletes recordings when the game is closed i think
there's a setting to have it never delete recordings though
^yeah that, what's your reason for looking at the recordings rn? if you wanna put your own clips you'll need to enable the setting that prevents it from deleting like winter mentioned
yea thats turned on usually. i turned it off cause i was suspecting mirage to make my game lag spike. i thought it collected too many recordings and that might cause lag. when i turned this option off, joined my safe and then turned the game off, i wanted to see if its all actually deleted
thats my and my friends' issue: #help-and-troubleshooting message
creating recordings shouldn't be causing any lag since it's offloaded to the disk
it's not being kept in memory
literally 5 animations (at least in the animations from MAIR)
1h
2h
flashlight
shovel
shotgun
π
i assume knife should use flashlight but i d k
i believe knife has a different animation thats just flashlight with an adjusted hand rotation
but for something that minimal it probably doesn't matter
im gonna keep it pinned so i can use ur code as a reference later
will probably add it in a couple weeks or something since i gotta go back to doing work again
ran out of time to add it on this current update
probably needs a lot of tweaks, i just grabbed bits from the stash i have, there was other code, just dont think its relevent, either way if you have questions, happy to help.
gotcha thanks :D i'll let u know when i work on it again and run into issues
Configurable option to have certain creatures use audio from all players who were speaking with an active walkie-talkie?
With Configurable levels of audio distortion?
It would be like they're picking up on radio frequencies!
A "mimic player" & "radio chatter" option for the creatures
barch isnt really working on large features for mirage anymore
Aaw, sadness
urgh... The things we deal with for a unified modding platform that doesn't abuse its modders
// For whatever reason, a null reference exception can still be thrown when going back to the menu,
// despite the null checks above. This intentionally catches it and silences the exception.
This is because of wrong null check
f# calls Object.ReferenceEquals(AudioSource, null)
but it only check if managed type is null, but not native
@deft cape https://github.com/gilzoide/unity-fsharp/blob/main/Scripts/FSharpGlobals.fs
namespace UnityEngine
[<AutoOpen>]
module Globals =
let isNotNull (o: objnull) =
match o with
| null -> false
| :? Object as unityObject -> Object.op_Implicit unityObject
| _ -> true
let isNull (o: objnull) = isNotNull o |> not
Here isNotNull fun that support unity objects
F# scripting in Unity with automatic compilation. Contribute to gilzoide/unity-fsharp development by creating an account on GitHub.
π€ this might explain some things for sure @deft cape Hopefully this is easy to patch and hopefully it finally resolves the issues of clients freezing
oh ive never used this because that wasnt added yet when i wad working on mirage most of the time π
good to know though thanks for pointing it out
ill have to change that in my codebase in a couple weeks at least since im busy for now
im not really sure why null reference exceptions would cause clients to freeze but one could hope
oh just realized that's a custom defined isNotNull, i thought that was the recently added one (but i never checked if the PR went through)
@deft capeMirage or Mirage revive might causes the ship to not leave a moon
the specific line that errors in my hook is just calling the original method, so it's not actually from MirageRevive (at least it shouldn't be)
although it doesn't have anything else in the stack trace so i am a bit confused
maybe it could be MirageRevive afterall but it doesn't make too much sense since it's only the line that calls the original method
its not actually my log tho, it was a friend who used my modpack and played solo
and he said that it happens when theres masked on the map
might be not related or pure bad luck tho
i'll test it in a couple weeks when i have the time to
gonna note it down on github for now
thanks for the report
@toxic wharf @deft cape is the other mod causing
oh i missed something in the stack trace?
please send full modpack
01959f8e-2cfd-bfba-409f-8595c6ae114b
thanks diff π₯Ί
i mean it clearly says that it happens later on
im blind
in some harmony patch
oh so its really mirage revive ?
only lethalperformance does use it
in my pack
oh diffoz is the mod creator
thats why
really ?
weird
i've used this mod for a long time with no issues
seemingly
is there more info on this issue ?
welp, it tries to get name of gameobject after it got destroyed
so mod doesn't check if object got destroyed before getting the name of it
or checks it incorrectly
(by only checking managed side only)
welp i sent a message in goldscrap's thread #1237150819116257401 message
if you want to complete it, feel free to do so
#1200695291972685926 message
what happens if 1 person has the mod disbaled and the rest have it
does it break terribly or is it playable
i've heard it's fine but there's no guarantees since i only test it with all players having it in mind
No worries
Thank you
Mirage v1.20.0 is released:
- Masked enemies are now able to spawn holding an item at a random chance (in percentage).
- Config name:
Masked item spawn chance - Default value: 50
- Note: This config option likely conflicts with LethalIntelligence. You should disable this option (set it to 0) if you use LethalIntelligence.
- Config name:
Masked enemy spawn chancedefault value has been lowered to0.5f.
Full credits:
- Piggy for his MIT licensed asset bundle.
- VirusTLNR for the held item animation implementation and for helping me out when I had questions.
Held item animation is taken from LethalIntelligence (with permission). Go check this mod out!
@deft cape your new file in Mirage 1.20.0 is failing to decompress cus you didn't properly make it an assetbundle
it actually because of calling unity api in other thread
even though i also got this, it doesn't seem to impact gameplay
I still rolled it back for now til the mod updates lol
Didn't even drop what he was holding
or is it even mean't to drop said item at all?
It's probably intended to not drop the item
also the items stay permenantly even when leaving said moon
I delete masked enemies when they die
Despite the (kinda given for a first version of this lol) bugs, such an awesome update ty!
Though, would it be possible to get a config to limit what items the masked can have? I think rn it's just calling on any item, so on top of the other issues already it's at best having them spawn with items that they shouldn't have decently often, or at worst spawning them with bugged/debug/null items and causing a bunch of other issues.
fr he was so proud too
Also using control company keeps the item in the air if you despawn yourself back to normal player control as a masked, but I presume that's to do with the other despawning stuff not working totally right.
Lastly, this sussy log coming up a fair bit, this one was from using the terminal but variations of it were happening a lot. I only updated a few mods so I am preeeetty sure this is mirage, but not totally certain.
Same parameter name: key came up in relation to customemotesapi too
False alarm I think, after reverting mirage the key error persists. So it's maybe lcoffice, pinnacle, or a couple other things.
It is limited to grabbable items afaik, but I didn't check barchs code.
I think I also removed certain items (beehives, apparatus, etc) because they are unrealistic. (When I was fiddling with fake items)
But yeah I only told barch to use grabbable objects, woke up this morning thinking "hmm, should have said don't use apparatus etc" lol
Ngl, peak fake item for me is toilet rolls, cause you know not what hides behind those.
LOL my thought process aside from the potential buggy items would be that it moves the sussy behavior from one semi-obvious tell - holding nothing = masked - to holding scrap = masked. In my games most of my friends hold one of a few set tools in their hands or nothing, now that I've installed the dedicated flashlight slot mod.
I think (if this was even possible) for my games at least, the optimal potential config would be something like a configurable tool list and a chance a mask spawns with a designated "tool" that could be configured to items my team uses (I'd prob set that to like 50%) and then a configurable "scrap" list which I'd set to like 10% to offset what would become the "hold scrap so you're not an imposter" meta.
Not that my friends are super tryhard about not getting jumped, and not to sound too demanding, I'm just sayin that would be my optimal, if that was possible!
On that note
It currently uses just any possible scrap in the game, independant of the moon
So could be good to limit to scrap thats spawnable on that moon, even cooler if it followed that moons spawn weights, maybe yanked a random of the spawned scrap of the day?, also makes it work better with modding
defo having it be an rng chance and it pulling from either any gear or gear the players own would be great too
It might be another mod but after updating any time we save and reload we have our items on ships occasionally changed, so It might be affecting the scrap list?
i'm surprised this is even an issue, i haven't run into that a single time
i'll take it back to the main thread, just a bit sad that it'll make load times a bit worse
oh it's a conflict with BepInExFasterLoadAssetBundles
i'll j ust try and do a runtime check and if it's found, run it inside the main thread instead
i'll probably make it a config option to be droppable later on if people want it
it's not meant to drop right now so it's still ungrabbable (just not sure why the grabbable text is still showing when i set the item to be ungrabbable)
whoops never noticed this, will take a look π
i was thinking either i could add a config where it lists every item and you can selectively enable/disable them (like who to enable voice mimicking for), but considering the # of items that exists that's probably gonna be a bit painful for users
so it'll probably be better to just use this (only spawnables on the moon), i'll maybe do the weight thing but i'll have to see
can you elaborate a bit? like the items left on the ship aren't what it was before the save? that might be related to the items not despawning i'm assuming π€
just confirming, is this happening on the host as well
(I have never seen that happen, unless you mean that one time our weapon turned into a random scrap item? that was because we removed a scrap mod, or you're talking abt a testing world?)
in the code i shared with barch, there was code for switching/hiding items, so a masked could switch what it is holding (when a player isnt looking as i dont know if it looks normal). not sure if barch is doing this or not though.
but, i assume the option is there for the masked to not hold an item (i doubt they are always holding items :O)
i would do a blacklist, and auto add known issues (like the apparatus - who carries an apparatus unless its been pulled?, clipboard, sticky note, etc)
oh whoops i didnt even read this properly anymore
now that i think about it, it's the same thing with my friend group
so i guess grabbing items from the current level using its weights still wouldn't be as good
it'd be better than what i currently have but doesn't seem to be worth exploring anymore
so maybe the move is to do a blacklist like virus mentioned
but if it's a very simple config with items to blacklist then it'll be missing any custom weights
will have to think on that a bit on what approach to use, for now i'm just gonna try fixing the bugs
@vast canyon is there a simple way to check if BepInEx Faster Load AssetBundles Patcher is found? since it's not a plugin i can't do it the usual way i'm assuming
wait where are you seeing this? is this the company building?
just load bundle on main thread
i still want it to load on a separate thread if BepInEx Faster Load AssetBundles Patcher isn't loaded though
just to make load times slightly faster
Happens for both host and client.
Inside of experimentation
gotcha
then request async operation via loadfromfileasync
we didnt play on the update
i played on the update after
and reloading the ship made the items change
same day, same save, just leave and reload
oooh
on the note of making masks better, removing that like, stop and stare moment or making it shorter would be nice
masked AI changes like that requires a lot more work/time - which i don't plan on allocating to modding anymore
the best thing that exists for that is LethalIntelligence
Mirage v1.20.1 is released:
- Masked holding items no longer show a hover tooltip, thanks to mattymatty.
- Fixed a bug that caused an error on startup when BepInEx Faster Load AssetBundles Patcher is installed, thanks to DiFFoZ.
- Fixed a bug that caused items being held by masked enemies to persist between rounds.
will be looking into a way to customize the items next, still thinking about what the best approach is though
i'm leaning more towards a whitelist, but if it's going to be a simple config (like the voice mimicking checkboxes) then it'll have to have equal weighting for each item
so not entirely sure what the best approach here is while keeping the config simple
awesome
oh mb, thanks lol
what about if it just used the moons scrap, and had a section to input dissalowed objects
whitelist with equal weighting is good enough imo
a tickbox for apparatus coded objects (like meltdown latches into other mods)
and then a custom list of excluded things like LGU uses
gotcha im just gonna stick this then, since it's simple for me to implement and also simpler for users to use
i'm not sure what they do (never went in depth in LGU, just installed the mod to play)
but what i'm thinking of now is
i'll just have a blacklist actually, but items can only be used from the current level still
that way people can just blacklist specific items they don't want to see
but if it doesn't exist in that level it won't be used by the masked either way
e.g. you can just disable the apparatus yourself
do they use store items?
im not really sure but someone else recommended using items from only the current level so i'm assuming there's a way to grab it
will have to dig a bit
oh wait i guess ur asking if masked are able to use store items? in that case yea
i just found SelectableLevel has a list of scrap so i'll just use that + a blacklist
- store items i suppose
fair
whatever config i have set up has the masks spawn with the same equipped items like reserved slot flashlights n stuff, so store items arent that important for them to hold anyway
just wondering cus there are some store items i have disabled cus theyre buggy, and i guess i'd have to put those in the blacklist for mask
i'd still want to have store items since not everyone has reversed flashlights, and plus some people mainly hold things like shovels (like me when i'm playing)
yeah
i guess if the community is able to figure out which items are bugged
i'll update the config to have those disabled by default
or straight up remove it from the config
yeah
i think that aside from some that are 100% broken itll be up to individual users to disable
cus the ones i have disabled are still being worked on and might not be buggy in the future
thats exactly what i was trying to mean, perfect
Would it be possible to have a whitelist and use duplicate entries to incease odds? Like imagine only whitelisting 10 items and 5 of them are shovels = 50% shovel chance
apparatus could be a tickbox for the less competent (plus itll be way easier to mods with unique app but they all share app signature identifier thing)
i might look into making them use items later on but it'd probably have to be way later
since after i figure out this config stuff my break is basically over
prolly leave that to intelligence creator or smth?
thats a big change
unless you can abuse loot bug mods allready out
for using items it shouldn't be that complicated
maybe not stun grenades at least but
e.g. using those annoying horns on an interval π
mask with piggy's rifle:
hmmmm i'd have to think about how this could be possible with a simple config still
lmao
they spawn with a shotgun? π
they can rn yeah :p
Imo I already had to manually set LLL weights and celestialtint weights so I wouldn't mind a config that autogenerates most items in a whitelist and sifting through em lol
honestly
But that's just me
a list of all the internal names would be like
i would suck dck for that
especially if it split it into moon specifric ones and overall ones, but thats reaching, a simple list of it all is so amazing
But so long as a dupe entry doesn't bug it out, I don't see why that solution can't be a good substitute to a weight system. Bit more scuffed ofc but I do the same thing with lethalposters. I have like 20 dupe posters and 5 scary ones so the ship semi rarely has "anomalous" posters
Ok cool idea but if it's a yuge item list + moon specific I'll be utilizing the shotgun roulette mod
lmao
fr tho
certain moons get unique scrap not on any other moons
so havign a list of generic scrap
and then the moon specific ones is nice
its asking a lot though
that's basically what i'm going for if i'm doing a whitelist/blacklist thing, since i'd just have a checkbox toggle for each enemy
itll be a bitch to scroll through if it only by checkbox, but id still love it
that's what i'm trying to avoid actually, i think the config is too complicated for more average mod users, so i want something that's easier to use but isn't too limiting that more advanced users won't like
that's also a problem yeah π
Btw on that note of per-moon scrap the "masked can only hold scrap that's in the level" would prob backfire a tad (at least for me) depending on
A) if items in the smart cupboard are considered viable targets (would they be able to find a shovel if that's the only place one is?)
B) half the scrap in the lethal is rare scrap used as ship decor, these could be untoggled tho
ah i guess i'd have to also look for a list of items that's overall found on the current round eh
B) half the scrap in the lethal is rare scrap used as ship decor, these could be untoggled tho
yeah that's where the config being a blacklist would be easier
i'm still leaning towards a blacklist with no weights to have a simpler config for now but i'll wait for more ideas b4 i implement it
Like I said tho all I think I would want is whitelist, and I'd dupe tools a bunch and remove everything except like a few of the most common scraps (dupe those too) then have a bunch of rare scrap that only has 1 entry.
I wouldn't personally care much about moon specific stuff, but maybe people's per-moon scrap ia more precisely configured than mine
Not the end of the world lol if a simple blacklist is what ya do but just sayin there was no ability to make shovels more likely through duping entries I'd probably just limit the items held to like, 3 tools. Which is a bit of a shame - but the alternative would make holding scrap too much of a tell and people would just always hold shovels/tools
hmmm
i'll still try and think of a way to allow users to adjust weights then
but still in a simple way
Letsgoooo
Yeah because I'm thinking more of it now: with no weights one would be inclined to add more scrap for variety (to be trickier) but all it would do is mean scrap = sus amogus imposter. It's like the cobra effect lol
ok what i'm thinking rn is
i'll keep a simple whitelist/blacklist but
i'll also add one config option for a "store items" weight and a "scrap" weight
so you can e.g. adjust the store items weight to be much higher
and then it'll be an equal chance between each item in that category
e.g. shovels, flashlights, etc would go under the "store items" weight
so that you'd only need to adjust 2 values rather than 1 for every item
would that work for you? @quick remnant
it's honestly either that or i guess i just have a whitelist/blacklist with a weight for each item as well
would make the config pretty dang huge though π
If it was me, I'd take the latter just because people would use items like Geiger counters more than extension ladders and so on. I think if the config default is well made and the horrors of serious tweaks can be left to the freaks (like me lol) having more options to weight is gonna work for more playstyles.
I also use buyable knives as an alternative to shovels, etc etc
Oh, also I'm not sure how a blanket scrap weight would play with mods that add store items to scrap... Well, ig they could be blacklisted. How remnants treats items confuses me
slider if you want it simple, but just a weight input is nice
it gets overwhelming if you do that for every moon though
so a slider maybe just for ship gear, on planet works on the spawn weight and a blacklist option with a reference list of all items, and a checkbox for apparatus assaigned items
remnants actually uses a unique scrap spawning layer i believe?
hence why they have a config to adjust the total scrap value count
thats' why im thinking of just doing the two weights i mentioned as a global weight
Unrelated: so long as we're yapping about making this mod that is already 10/10 into 20/10 - I gotta tell you qwbarch one of my friends teleported a masked version of another friend on to the ship (for whatever reason it didn't attack but still talked) and she straight up thought she was having a conversation for like 2 minutes because the voice lines were just vague enough to make sense LMAO
Only when I got back to the ship and it stanced up at me (friend still talking to it) I was like uhhhh
so you can just e.g. make tools have a much higher chance to be picked
LMAOO
She was like "no don't hit her!" When I started shovelling it LOL
and when it died in the masked pose her whole world was shattered, she was in denial for like 5 mins after and thought I killed our friend π
How about splitting the diff and having per-item weights for tools, since there's not many, and just a broad weight for scrap. I can't think of a reason I would weigh any individual scrap item much more highly than another
Again, broken record, shovels just need to be higher than everything else
Fo me
oh ur right good idea
per-item weight for store items and then a global weight for scrap
that sounds like the best approach so far
yeee ur right
that's def the approach i'll do then
probably gonna work on this tomorrow instead actually but yeah, at least the idea's solidified now
yeah, grenades is complex from what i can see, MAIR/LI has code for it, but i never seen it work.
The Masked enemy from Lethal Company
i think tbh.
tools should have a fixed weight, but should have 0 weight if "reserved item slots" is installed.
scrap should be weighted based off the moon
and there should be a blacklist, no whitelist.
it just keeps config small (cause blacklist is usually only a few items) and then the weighting will be the same as the moon for scrap, so, you will see items you normally expect... and as long as the weight for tools is "normal", you should see tools at a relevent rate... and then tools your group dont use, can get blacklisted if they keep appearing.. and buggy items, can go on blacklist too.
yeah that's why i wanted to do a blacklist, less of a need for users to select stuff
i think what i'll have actually is:
- whitelist for tools with per-tool weightings
- blacklist for scraps with no weightings (uses the moon's weightings for items that aren't blacklisted)
as for reserved item slots, does it already display the item for all tools or something?
i'm not really sure if it makes sense to disable tool weightings by defualt still, since that'd just make scraps be used 100% of the time, on top of the reserved item slot's held item
in that case it's probably better for the user to just disable mirage's held item option completely and just use reserved item slot's functionality
(or vice versa)
100%
any reserved slot that has a visual marker, when a mask imitates that person it imitates that visual
like walkies will show if they have a walkie equipped
ah so they can still hold a scrap while showing those visual markers eh
ok i get what virus is saying then
thoughts on this though? i feel like this has the best of all worlds where it still uses the moon's weightings for scraps while the user can specify their own tool weightings
Yh
Itβs perfect I think?
Yknow
Your am insanely impressive dev
Do you ever like stream while your coding
Or sit in a vc
oh thanks π
i mean i could sharescreen but i doubt it'd be interesting to watch at all
plus it's F#, it wouldnt be fun to read
honestly
i love watchign coding
specially cause i wanna get into LC coding haha
watching help sme learn a ton
that's the fun part smh
trust me watching me isn't going to help you learn how to mod LC, you're better off watching someone else π
since i use F# like xu mention instead of the usual C#
i don't think mirage likes when hoarder bugs spawn with phones (from lethalphones)
kept spamming this once a hoarder bug spawned with the phone
lmao
whats f# lol
the joys of items in lethal company... xD
oh i changed the namespace for that class so it broke the reference for lethalphones, oops
the author just needs to recompile with a new version of mirage
just a different programming language that i prefer over c#
fairs, cool
Does enabling the masks on the mimic enemies cause them to glitch for anyone else?
like
sound muffled for instance
the muffled sound is vanilla
the masks are supposed to be making sounds by themselves if mirage isnt installed
then how do i fix the sounds
they do a muffled sound, a chuckle, and an evil laugh
none are coming out
a bug in the current version i beleive. related to the bundle not loading due to it being the same name as the one in LI. I was also playing not realising masked werent speaking xD
oh is that released now? i finished playing an hour ago so didnt check for an update, was just replying to the issue as im aware about it from the LI thread.
nah that would've caused mirage to not load at all
if the sounds are muffled it's something else (no idea though)
so i'm trying to think of some default weights for store items rn. are regular flashlights or pro flashlights used more often? should i just have regular flashlights have a weight by 0 (disabled) by default?
i asked chatgpt which flashlight is used more often and it says pro flashlights lmao
in my experience pros are used more
gotcha ill just keep regular disabled by default then
Mirage v1.21.0 is released:
- Renamed
Masked item spawn chancetoChance to spawn with itemand moved to a new file:Mirage.Items.cfg(you'll need to re-do this config option, sorry).- Default value: 80
- This means that by default, there is a 80% chance for a masked enemy to spawn with a held item, and a 20% chance to hold nothing.
- Added a new config option
Chance to roll as store item.- Default vlaue: 50.
- This means that by default, there is a 50% chance for the held item to be a store item. Otherwise, it'll be a scrap item using the current round's scrap weights.
- Added a section in
Mirage.Items.cfgcalledStore Item Weights.- This section contains a weight option for every store item.
- By default, only walkie-talkie, shovel, pro-flashlight, stun grenade, extension ladder, and spray paint, are enabled.
- The higher the number relative to others, the higher the chance for that item to be used by a masked.
- Added a section in
Mirage.Items.cfgcalledScrap Item Blacklist.- This section contains a true/false option for every scrap in the game.
- When a value is set to
true, masked enemies will never hold that item.
Yeah defo, normal is shit haha
Only ever buy them if it's a dark moon and we're broke and gearless, so almost never, not even first landing, someone always orders a pack of pros
Now having mods that add more flashlights makes the normal even more useless
we only use the normal flashlights when remnants spawns them and we don't have anything better to use
Same
yo
if we kill the mimic with scrap
could we have a config option for them to drop said scrap
is this okay to ignore?
It looks like those items just aren't added to mirages configuration.
it seems like it. but I use LI, does the new feature matter? or rather will be active even?
yes
Well I believe you should turn it off with LI (for now) but I may look at providing an option to allow mirages item use as like a visual thing (ie, masked pocket the items they aren't currently doing something with.) With li, so it all works together.
item name contains invalid character for config binding
it should be turn off this way right?
oh it's automatically disabled on Mirage if LI is used rn
if u end up doing this lmk so I can remove that part
but yeah normally you'd set "chance to spawn with item" to 0 to disable it
whoops I'll have to fix that
yeah I'll look at it today
Jesus
Your a beast
If on the note of doing that, a custom multiplier to make their scrap more or less valuable when dropped on death would be valuable, in addition the mask dropping on death with a value multiplier is in the same vein
Not to add workload more to add similar function ideas at once
all good it's like 0 extra effort for a multiplier so I'll add it
Nice
Being able to make them worth more of less than the scraps normally worth is hella nice
Plus with masks, thatβs 2 item drops which is a nice balancing factor
u mean the mask itself? that's just a texture on the masked enemy rather than an actual item
so it'd still be dropping only 1 item
Second half of this msg
Sorry it was formatted badly
ah I missed that whoops
I'll pass on the dropping a masked thing
pretty sure that kind of mod already exists anyways
will do the scrap one though
It's called TakeThatMaskOff but it's kinda buggy
SellBodiesFixed mod have the masked dropping mask feature
Mirage v1.22.0 is released:
- Masked enemies holding items can now drop their items.
- Added a config option called
Drop store item on death. Default value:false. - Added a config option called
Drop scrap item on death. Default value:true. - Added a config option called
Scrap value multiplier.- This only affects the scrap value multiplier for scrap items dropped by masked enemies.
- Defualt value:
1.0.
Nice, thanks man
np
so i'm not entirely sure what to do about flashlights right now
i was thinking i could have an option where there's a chance to have it turned on when a masked spawns with one
but at the same time if the flashlight is turned on and the masked is outdoors that could make it a bit obvious
so maybe just have it by default only "on" when indoors and "off" outdoors?
Hmm
Could do
Or occasionally flick it between randomly
Most tend to have flashlight going on and off indoors
Same with outdoors depending on time
just wanted to keep it relatively simple
To conserve power and give brief moments of info
Maybe just an rng state change
Assuming they hold these things like players
Going between on and off on a custom slider time scale between min and max of each state
So 5 config options
honestly i might just go with my original idea with this
just so it's quick to implement
Sounds good
pretty much trying to get 1 more quick update and then i'll be MIA again
:D
I would love if instead of a true/false for them to drop items, its a chance we can set
Would make it much easier to balance
how would that help? genuinly
i asked for the value multiplier for the balancing aspect, making the drop rng seems reductive
if they got the 1/10k chance to hold a gold bar, why leave ti to chance if it actually drops the gold bar
if it gives too much money turn down the multiplier
i was originally gonna do that, don't remember why i decided to change it to only being true/false though
but i can switch it to that anyways
Mirage v1.23.0 is released:
- Added a new config option
Chance for flashlights to emit light. Default value:50. - Changed
Drop store item on deathto a new config option that takes a percentage instead. - Changed
Drop scrap item on deathto a new config option that takes a percentage instead. - Fixed certain enemies and items failing to register to the config.
alright that's enough updates for me, if there's any big issues please ping me so i know to fix it
other than that i'll probably be hibernating for awhile again
version before this released version.
dunno if it broke anything. A masked got caught up in seamine gal's explosion attack (code rebirth)
ah fuck
i know why that happened
i'll push a hotfix
oh nevermind
looks like i fixed it by accident lmao
oh in ver 1.23.0? thats great!
yep it's fixed in 1.23.0
Hey not gonna ping atm because it's super late but here's a few errors I was having with phones. Sometimes the masked could spawn with a phone and not throw errors though - typically emptyhanded masked - so I think it has to do with the way phones and holding items works. It was really bugging out the animations (and making their phones invisible) with twohanded items.
Also animations for twohanded items can be buggy. Hard to say if this matters if its a remnant "scrap" item or not, because I saw a masked holding a shovel weird in one of these pictures but then properly another time. These animations kinda look like they're trying to hold a phone in their left hand, so that might the main reason for these buggy item holding spots.
Lastly: not an error report but would it be possible to add compatibility for the flashlight config of being on/off with reservedflashlightslot? Super awesome feature, but most people don't hold flashlights out in their hands - especially now since we just installed reserverflashlightslot π
if lethal phones gives phones to masked, then there would need to be some integration, its effectivly two mods trying to do the same thing (i assume), so it will bug out, this is why in LI i always said mods making masked emote would make masked look weird, lethal phones also will probably make masked look weird in LI too, i would say turn off lethal phones if using this feature in mirage unless barch makes them compatible, which would basically mean, when a phone is held, the other item should not exist, or vica versa, it should be one or the other.
i meant btw, turn off masked using lethal phones (if poss)
Barch said it was cus he changed one of the namespaces. Lethalphones hasn't been updated to account for the new namespace yet
it actually sounds like both 2 handers and phones are being held, and its a conflict, but i could be wrong.
for example in the picture with the extension ladder.. its being held in the position like in the pictures where the left hand is held up.. the phones animation?? so it looks like the lethal phones animation, is overriding the one being used for 2 handers. (and probably for 1handers, etc, too, but due to them being held in 1 hand, you may not notice :P)
the pic with the extension ladder looks more like it's using the 2hander anim when the extension ladder doesn't use that
extension ladder uses 1 hander anim
and phone does too
im not sure the extension ladder uses 1h animation, the position of the hands looks correct to me, but the extension ladder is in the wrong place.
i was just feeling like, its being held like this.
ah, maybe then im wrong xD
the other thing is the eevee plush uses the anim for the belt bag normally
using two hands but close together in front of the employee
but in this case it uses 2 hander again
does the belt bag have its own animation? x.x ive never looked at the belt bag.
ok, well, im guessing these are just exceptions, that ive never explored.
i gave barch the code for choosing which animation... so, it maybe these fit outside of normality.
like.. the extension ladder MAY have the "2 hander" property.. but its held like a 1hander.
the belt bag, i have no animation for it, so barch wont either.
if you didn't know about the beltbag having its own animation then that probably just means that the animations are misaligned for what they need to be holding
nah, the code checks if its a 2hander, and gives it the 2hander animation
and the extension ladder is a 1 hander in base game btw
but some items have exceptions, because of extra animations.different positions
for example, flashlights have their own animations
hotbar allows swapping with it
but belt bag is new, havent fiddled with it in LI
yeah cus flashlight is just 1 hander with the hand in a different rotation
yes, but its a different animation
resending this because the picture explains it better than i can (i think)
so if beltbag is held different, a new animation needs to be made π brill. as for the extension ladder.. for some reason its grouping among the 2 handers, or there is a bug/conflict
i will say
even though the extension ladder is counted as a 1 hander by the hotbar
it has a unique animation
it doesn't do the same pullout animation as normal 1 hander and the offset of the arm is different
so its in a really weird spot
then there isnt an animation for it.
4 animations.
Lung = 2h (also shovel? O.o)
Flash = flashlight style
OneItem = 1h
Shotgun = for shotguns only
i think knives have a unique animation..? beltbag, maybe extension ladder, the animations just dont exist.
going to open the game and check the extension ladder properties though.
gotcha
how are you checking for items that have properties of one type but use another type's animations? 3 i can think of off the top of my head are the bottles, painting, and fancy lamp, which are considered 2 handed but use the 1 handed animations
- HoldPatcherTool
- GrabClipboard
- walkieTalkie(a use animation ig)
- PullGrenadePin(another use)
- HoldJetpack
- useTZPItem (use)
- HoldShotgun
- HoldMask(use)
- HoldKnife
- UseHeldItem1(i think this is the knife's use lmao)
- HoldForward
- RockBaby(use)
- shakeItem(use)
- HoldLung
Those are the players different hold etc animations
the animations come from an old bundle, thats not been updated, masked dont use player animations sadly.
what is HoldPatcherTool used by?
ok
thats a weird naming choice, i guess the zap gun had a different purpose before it became the zap gun
so, you can blame zeekers for the extension ladder being considered as a 2hander (at least by the code i gave to barch.
that's so weird
The two hander animation bool isn't related to being two handed yeah
Prime example is shovel
Two-handed just prevents swapping
Shovel actually turns on and off two handed while reeling afaik
yeah, but its what i use to check if it needs 2h animation.
shovel has an exception, extension ladder doesnt.
Wdym exception
either way, it maybe the case someone needs to make animations to make all the items look real, i wasnt aware there was so many different animations.
i don't get why it has that anim bool as true, cus it doesn't use the normal 2 handed animation in game
#1200695291972685926 message
heldGrabbable Is Shovel <- so its not using the wrong animation.
both looking from another player's pov and the viewmodel don't line up with it using 2h anims
im guessing zeekers also has extra code going "is ExtensionLadder" and doesnt really use that bool
There probably is an override somewhere
Maybe because it also has to play the retracting animation when you pick it up while deployed
well either way, it looks like a lot more animations are required. fun. x.x
#1200695291972685926 message
from this list i beleive patcher tool, clipboard, hold jetpack, use tzp, hold mask, hold knife, shakeitem and rockbaby are not animations in the bundle.
Since this bundle was for LI initially, are you planning that the masks will be able to use the items? If not then you can probably skip use tzp, shake item, and rock baby
Oh and hold mask (use)
the bundle was for MaskedAiRevamp initially xD
i just started using it when i started working on the MAIR code.
from my pov, a mask can pick up any item in LI, so i kinda need to add in the animations to the bundle, i just didnt realise that there were so many, i guess i just dont pay enough attention to that, probably because items are the bane of my existance in the first place π
Fair enough
so yeah, i guess i will need to recover my project which i used to last update the bundle with a change in 1 animation.. i have no clue how to create new animations though. xD
If its the same rig as the player, can u reuse?
maybe, but, my gripe is, i dont know exactly what an animation requires, in the bundle ive seen controller files, meta files, animation files, etc.. i dont know what files = 1 animation.. i dont know the format, etc, its probably simple, just never done it, as i say, the most ive done is edit 1 line in 1 controller file for one animation, to stop it looping.
I assume 1 controller file contains many animations, and it also needs the relevent anim files, but, i dont understand the structure of a controller file, or how to generate one.
i also asked someone to help me make an animation before, someone i beleive who was good at them, and they couldent help me either.
but yeah, i can certainly look at nicking the player animations, based off the one i edited already though, ill have to fiddle with the controller files.
Are you okay with doing stuff in the unity editor
i had a project in unity for editing the bundle before, but now got a new pc, and the old project didnt have it so i could view the game in the editor, i was setting that up before i got my new pc, but never got around to it. im sure i just need some time to look at it.
It's a lot simpler than you think too
All you gotta do is copy paste the AnimationController of the masked (usually created by right clicking and pressing create animation controller)
it probably is, but im allergic to being artistic, so, easy can certainlykill me π
And then, slightly more complicated, put the right animations in the right layers and link them to the other animations
I would show an ss but not home rn
It's basically like a node graph
You have to connect different "State Machines" that contain animations in how you'd want animations to transition
And you'd define either parameters that you'd call to move animations, or you'd just let it switch animations at the end of the animation
yeah, ive seen the graph, its the layers and the states, i just need to get to grips with where one animation starts, and another ends.
If it helps you can mess with it in editor than ingame
but as i say, i just need time to look at it.
The animation tab is very friendly
You can toggle parameters etc in runtime
And your thing would animate accordingly
yeah i used unity explorer to do just that before, looking at how the player holds things to see how it compared to the ones in the bundle.
as i said, just havent made a new animation yet, learning curve, hopefully work is dead this week, so i can just sit there and look at it.
When I get home ill test whether you can reuse player animations on a masked
The stuffs pretty simple it'll take like a minute
that would be great, thanks.
the only thing i remember is, i looked at the 1 hander animation (which i also edited) and piggy had put it 95% similar to the player one. (just a few points were different, i think i corrected them to how the player one had them because i thought they were causing the issue i was seeing, but i was wrong)
but there was a property in the 1 hander animation, that was coming from the player animation properties, once i removed that property, the animation worked fine, so it maybe piggy at least in part copied the player animations, and just left that property in on the 1 hander animation by mistake (cause the others didnt have it)
Missing properties in an animation should be handled fine, but it mightve been a non missing property that did stuff it shouldn't for masked
yeah, if i remember rightly, it was related to the arms a player sees... so the animation was trying to show the players arms, but the masked dont have them
So weird I thought the ladder was two handed as well lol. The zap gun animation on masked seems to work fine currently, same with knives. Shotguns have been all over the place but I think I just haven't spawned one with a shotgun that isn't also trying to hold a phone.
this was what was caused when the animation had the wrong value i changed/removed, i must have removed the player event which caused this error from spamming when they held 1 handed items using the 1h animation.
Stack trace:
PlayerAnimationEvents.UnlockArmsFromCamera () (at <255c0877f9414c3aa6f1fe5079ac13f3>:0)
it probably looks fine, but, its not exact to how a player holds them im sure. there is 1000% no specific knife animations as the bundle was made before knives existed, but maybe there is a set rotation for it that makes it look correct when holding the knife.
i guess it's time for me to actually learn how to use the unity editor for once
For wut
Also I said this and fell asleep immediately lol
the thing u mentioned
like i have no idea how to do any of what u mentioned so i'd have to struggle a bit through the menus π
So we tried out the new updates for this mod last night and found some weird stuff going on with masks sometimes. There was an issue where the masks' state was desynced between host and client, cus sometimes the clients would kill a masked, and it would show as dead on host but client saw it still alive and talking. it could also still grab clients but it couldn't grab host (because it was dead for host). I'm not 100% if this is your mod causing it or something else, cus we also had a desync with facility meltdown (the ship took off for clients but didn't for host, so clients were waiting until the ship left at 12 for the host).
code: 0195e529-8cf8-f54e-bb23-9b105899efe5, this log is from a client, the host's log was lost
@deft cape @ionic shoal sorry for delay but yeah confirmed player and enemy use the same rig
masked enemy*
so you can just steal the player animations
it wont work for stuff like the truck because the masked would be missing some more specific control stuff there (though it would be sitting down etc) but yeah
bro thinks hes charging an item
typing on terminal, etc
all teh animations work anyway
fireee thanks for the confirmation
do you mind explaining how to do that for unity noobs like me π
with no errors in the console? or you didnt test them ingame?
all good if it's too much of a hassle though
there shouldnt be errors, unity SHOULD just handle everything right on its own, and if there are then you'd just get rid of the yellow thingie's on the bottom left for the animation tab
oh i literally just copy pasted the player's animator and replaced the masked, you'd have to add and not replace since the masked has some animations exclusive to themselves but i can show in a bit
unless i'm tripping i don't see any errors for mirage, so unless there's more reports that it is indeed a mirage issue i'll probably leave it as it is for now
nah, im just wondering if you got the same error i faced in the past, if its just that to fix, then they will work, just have to manually edit out the thing that causes that error.
ohhhh gotcha
player's and masked's animators are a bit deep in the hierarchy, but yeah
never got that error before and i've had those yellow stuff before, so no idea really what caused that error for you
events attached to player animations, one sec
i mean u cna just get rid of the animation events if they're missing
unity gets that stuff via reflection and i forget how reflection handles stuff that doesnt exist
anyway, this is the player's animator
this is the masked's
masekd doesnt usually have special animations layer
i just added that to test teh animations
gonna play around with this tomorrow, i hope i'm gonna be able to figure out how to even get to these menus lmaoo
added the layer, copy pasted all the animations by highlighting all teh state machines
when u select the gameobject with the animator and click the animator tab at the top you'll just be sent there automatically
you can also double click the animator in unity
and itll open the tab
gotcha sounds good
yeah i didnt see any specific errors that gave it away
obv you'll have to do a lot more than i did with copy pasting since u gotta set up all the parameters and make sure you handle them right in code, but other than that is easy
yeee fs
i'm guessing it was just a general desync between host and clients
i appreciate the help π
i have no idea honestly π
would be surprised if mirage is actually causing it though
since it seemed completely fine during my tests
get down mr president!
anyway ill stop messing with it, u can have fun with it tmrw
cant find an example in the player animations, so maybe the bug was caused by something piggy put into the animation that was erroring shrug
so, uh, yeah, i can probably make a new bundle with the animations in myself, didnt think i could rip them from the player (i knew the had the same rig, just uh yeah... not familiar with it myself.
wait... so... by this logic.. you can... STEAL MASKED ANIMATIONS...???
i guess u can, but that's the opposite of what you'd want lol
you wanna steal player animations into masked
did the latest update remove the scrap blacklist opitons
no
theyre still in mirage.items.cfg
unusual
@grave vault do you have a log
my guess is that an error occurred that caused it to not generate the rest
but i swear that part should be caught and logged if it happens while registering an item
hmm
im just missing the entire section
ive launched the game twice
once to set up the new config
and now while we are playing
so once as lobby host and once as lobby client
is there no errors in the log
@grave vault
lemme look at it just to see if there's anything that comes to mind
ill relaunch
what phase should it be created in?
how do i export the full log
or do i just take a screenshot
should be in the loading screen
loaded in and still nothing, i loaded as host
which one XD
if you go to your mod manager -> options there should be a copy log button
where is that on gale
uhh not sure since i use r2modman π
found it
use gale, its awesome :3
sorry its dense, the pack has 127
i know it made the list last update and then removed it on this update
oh wait
i forgot, the item config is generated when you get into the game itself (like hosting a game)
but i think u said u already did that right
huh
the odd thing is it shows that u do have some blacklisted items
i uh
wtf
now its working
wait
when does mirage load the configs
all at once
or does it do EVERYTHING BUT THE SCRAP LIST before game
it generates everything other than the enemies and items config during the loading screen, and then for enemies/items it pulls that once u host a game
honestly that just means i need to document it better
but im also kinda lazy to update anything rn xd
lmao
its alright
i just assumed config would all be created at the same time
and was tryna rush the pack change
yeah that's just mb for not being more clear on it
it usually does work that way so it's a fair assumption
you are way too humble and accountable XD
good dev moment
btw hella credit on being so active in here and discussing things
oh i'm usually not that active actually π
i'm just on break right now so i have some time
but usually i don't really look here unless there's a major issue and someone pings me to fix it
lmao fairs
Had a look this morning at animations, assuming the player ones work ingame for the masked without editing, I can probably make a bundle containing them all today.
I just found the controller for the player animations (which I didn't find before, its called otherplayermetarig.controller (which makes sense as its what other players see)
@deft cape
try this, it contains all animations (or should do) for players, and seems to work for masked.
as for how to trigger said animations.. these are all the animations inside, i assume the animation name is used as the trigger
HoldFlashlight for flashlights
HoldOneHandedItem for one handed items
HoldClipboard for clipboard
HoldItemBothHandsForward for beltbag
ShotgunHold for shotgun
HoldPatcherStraight for the zap gun
HoldLungApparatice for 2 handed and shovel (seperate in my code..)
not sure what others there are.
also, if you let me know which you use, ill seperate them from the rest and try to make a controller just for them.
then i need to do the same for LI and merge with my existing bundle x.x
two questions
the links between states, if they dont exist, they cant be switched between using code?
the parameters in the controller, do they matter?
was comparing my current bundle vs the player controller vs the vanilla masked controler, and seeing no consistency, so thought id ask.
you cant go between one state machine to the next without links yes (technically i think you can but it's hacky and i do not recommend)
the parameters in the controller 100% matter, that's how you switch from one state machine to another
you either turn on/off a bool, trigger the animation, set a float that decides something, etc
ah., just a log of extra things in maskedairevamps old controller
so those parameters are the ones that trigger the animations.. for example.. "FakeJump" needs a "FakeJump" bool/trigger to be called.
i get the feeling the parameters werent used properly in the bundle as im seeing no link between the parameters and the animations/states in some cases.. for example "ShovelUp" parameter, doesnt have any link to "ShovelReelUp", but that was not implemented, so maybe thats just not correct.
FakeJump is indeed a trigger
ok, well, ill see if the bundle i shared above works fine for barch, im sure ive got some things wrong, but i at least now understand how to resolve said issues.
pretty sure the player controller had very few parameters though, so i wonder how that works without all the links between.
actually, i just realised you are seeing something different to me here..
#1200695291972685926 message
which controller file was that?
player has quite a lot of parameters
the animator in metarig is what im looking at
ah, i was looking at the metarig for other players, must have just not looked at "metarig.controller"
well, i looked through 0 and 1, and missed the main one... so thought the otherplayers one was the right one. oops.
wait so how'd you move the animations from the player -> masked? just trying to learn how to do it as well.
like i'm able to see the nodes now but i'm not really sure what i'm supposed to do next
well, i was just sharing my updated bundle, but if you want to do it yourself, its actually quite easy (if im understanding correctly)
so, you have all the animations + controllers ripped from the game.
you just need to add the animations you need to a bundle + a controller with the nodes for the animations + the parameters
to make it simple, i got all the player animations for "metarig.controller" and added them + that controller to a bundle
then you just need to use the right triggers in coding for the masked, and they will use the animations.
i don't see controller under metarig π€
just need to link to your bundle using..
Bundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(PluginDirectory), "playeranim69.bundle"));
MaskedAnimController = Bundle.LoadAsset<RuntimeAnimatorController>("metarig.controller");
nah, metarig is just the controls, the controller is a seperate file, when i ripped from the game, i had this..