#EVTUI (Visual event editing tool)
1 messages · Page 2 of 1
ive only tried with latest, id just forked it that day
Weird! I'll have to check why else that might end up being null.
i should note, when trying to pick a mod directory for new project, picking one thats already in use obviously isnt allowed but still lets me open existing project without crash (any project, not just the one i tried to use)
Like it lets you create a new project with the same directory as another one already in use?
no
if i pick a directory thats already in use it wont let me, but i can back out and load existing project without issue after
as opposed to crash if i go straight to opening existing project
Yeah that's normal. Works for me too.
oh you mean in relation to your crashing issue I see.
if you want I could give you my version of EVTUI and see if it works?
your version as in one you built (for win)?
yeah.
ok
oh cool it's under the mb limit. This hopefully should be it. Just put it inside your user folder like when you build it.
Goddamn, this server allows big attachments.
I think thats nitro actually. I got it because 100 mb wasn't enough for redux and the free boosts were nice.
same behavior

just to cover bases
if you want to try. I did build an exe for it. should be in EVTUI\src\gui\bin\Debug\net8.0\win-x64.
i extracted to the folder i normally put tools in, then just double clicked the exe
Can you sent the EVTUI user config yaml from appdata? If nothing's wrong there, I wonder if it's a permissions issue somehow.
...or just something weird with how C# is referencing the appdata directory on your machine.
this one?
That's the one! Looks fine, though....
OK, so when you get this second failure... do you have modded files for the scripts (BMD/BF/msg/flow) of E495_040? And if so, what's the path to those modded files?
i cant reproduce it
yea
Oh yes but oh no....
ive not actually edited the event it just happened one time and idr why
Weeeird. Yeah, it's because there's a conditional in the code that doesn't have a catch-all else, so if the directory structure of the mod is in some way unexpected, you can end up with a null path... some eventual file IO changes should hopefully get rid of this nonsense even by chance 🤞
(Or at least there should be a better error message at that point.)
i could be misremembering what event it even was tbh
i have a copy of 491_010 in my will seed project folder, ill see what trying to load that does
nope that loaded fine
i did actually properly edit an event, it was the ohya doubt event i was looking at before and i changed the messages so the correct answer would...actually be correct
id already made a msg file without evtui that had the edits i needed and it still exported fine, though i ended up reverting the file since it had all messages instead of just changed ones
Oh, nice!
also it occurs to me that it created an en.cpk folder and exported the dummy file to that, instead of the XtoDoubt folder i was using, although thats not a big deal its just funny
(i like to use funny or witty cpk names just because i can, though for the will seed cutscene mod i was thinking of splitting it into different folders for each ruler)
(maybe not though if the inconvenience of having to change folders a bunch outweighs it)
That's definitely part of the file IO changes I want to do -- it'd be nice to customize CPK folder names, to be able to edit files in multiple CPK folders for a given project if you have them, etc.
i went and made another project again, using my existing rematch mod as the project folder (as for bosses that take two encounters i want to bridge them with little truncated versions of the scene that normally plays in between) and i had to do it twice because the first time crashed
i didnt do anything different except place a shortcut so idk what that was about
Well, finishing up the UI for the modeling commands is taking...... MUCH longer than I hoped. But it is almost there! Now with fancy color picker widgets and all.
Looks awesome so far
Improvements to the preview widget are, uh... happening...? Hm.........
NO! NOT THE T-POSE SHADOW JONKLER
It's too late... he got her 
This will be fixed once Pherakki corrects the way additive (blend) animations are applied, but before that happens: some of my favorite horror shows"face animations" to come out of GFDLib's current implementation 
Points to whoever can guess who the last image is supposed to be....
?
What’s happening
Futaba is the only normal one everything else are are idk what they are
Lol. Facial expressions are animated differently than body animations, and the code behind GFDStudio (also used here) doesn't implement it properly (yet). So instead of smiles and blinks and stuff, you get...... those.
?


The model commands... are merged at last 
Remember when I thought I might try doing all the command implementations in one PR. Lol. Thank god I had the sense not to try to do that.
Anyway... now CG can get in there and find stuff I inevitably missed or need to fix 😁
Probably I'll start working on the camera commands next, so then we can actually get positioning/rotation into the previews.
it's time
when you remove the number from a MSD_ idle animation. It brings up an error.
Actually it seems to happen with every other editable one like this.
I did get a bigger error to occur but I can't seem to figure out how to recreate it. Let me test more.
I also randomly got a null reference that crashed EVTUI. But I did figure out how to get that bigger error let me record it.
at Avalonia.Rendering.Composition.Compositor.RequestCompositionUpdate(Action action)
at Avalonia.Rendering.Composition.CompositingRenderer.AddDirty(Visual visual)
at Avalonia.Visual.InvalidateVisual()
at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority, Boolean isEffectiveValue)
at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaiseCore(ValueStore owner, StyledProperty`1 property, T value, BindingPriority priority, Boolean isOverriddenCurrentValue, Boolean isCoercedDefaultValue)
at Avalonia.PropertyStore.ValueStore.ReevaluateEffectiveValues(IValueEntry changedValueEntry)
at Avalonia.Styling.StyleInstance.Avalonia.Styling.Activators.IStyleActivatorSink.OnNext(Boolean value)
at Avalonia.Styling.Activators.StyleActivatorBase.ReevaluateIsActive()
at Avalonia.Controls.Classes.NotifyChanged()
at Avalonia.Input.InputElement.UpdatePseudoClasses(Nullable`1 isFocused, Nullable`1 isPointerOver)
at Avalonia.Input.InputElement.OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
at Avalonia.Controls.Control.OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
at Avalonia.Controls.Button.OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
at Avalonia.Animation.Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change)
at Avalonia.Input.InputElement.<>c.<.cctor>b__32_6(InputElement x, PointerEventArgs e)
at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
at Avalonia.Interactivity.EventRoute.RaiseEventImpl(RoutedEventArgs e)
at Avalonia.Interactivity.Interactive.RaiseEvent(RoutedEventArgs e)
at Avalonia.Input.PointerOverPreProcessor.SetPointerOverToElement(IPointer pointer, IInputRoot root, IInputElement element, UInt64 timestamp, Point position, PointerPointProperties properties, KeyModifiers inputModifiers)
at Avalonia.Input.PointerOverPreProcessor.OnNext(RawInputEventArgs value)
at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
at Avalonia.Controls.TopLevel.HandleInput(RawInputEventArgs e)
at Avalonia.Win32.WindowImpl.AppWndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Avalonia.Win32.PopupImpl.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
at Avalonia.Win32.Win32DispatcherImpl.RunLoop(CancellationToken cancellationToken)
at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl impl)
at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, Action`1 lifetimeBuilder)
at EVTUI.Program.Main(String[] args) in C:\Users\Freeman Cavarretta\EVTUI\src\gui\Program.cs:line 21
Segmentation fault```
Yeah, was able to reproduce it now. It seems to only happen in the previews. You have to highlight the number then change it using the arrows.
MAA_ previews don't seem to have the error so you could look at those to see what the issue is.
Also I'm not sure if he's been added yet but it looks like joker can't be previewed at all.
also just noticed in the git console. idk if it means invalid as in the model doesn't have it. Or the opposite. But good to write down otherwise.
h_C_US1```
Another one if it is actually wrong.
h_B_MZ1```
Maybe it was just a small bug? Hmm
got a crash, here's the git error while I go recreate it.
at OpenTK.Graphics.OpenGL.GL.DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType, Int32, OpenTK.Graphics.OpenGL.DrawElementsType, Int32)
at GFDLibrary.Rendering.OpenGL.GLVertexArray.Draw()
at GFDLibrary.Rendering.OpenGL.GLMesh.Draw(OpenTK.Mathematics.Matrix4, GFDLibrary.Rendering.OpenGL.GLShaderProgram)
at GFDLibrary.Rendering.OpenGL.GLModel.Draw(GFDLibrary.Rendering.OpenGL.GLShaderProgram, OpenTK.Mathematics.Matrix4 ByRef, OpenTK.Mathematics.Matrix4 ByRef, Double, GFDLibrary.Rendering.OpenGL.GLCamera)
at GFDLibrary.Rendering.OpenGL.GLModel.Draw(GFDLibrary.Rendering.OpenGL.GLShaderProgram, GFDLibrary.Rendering.OpenGL.GLCamera, Double)
at EVTUI.SceneModel.Draw(GFDLibrary.Rendering.OpenGL.GLShaderProgram, GFDLibrary.Rendering.OpenGL.GLCamera, Double)
at EVTUI.SceneModel.Draw(GFDLibrary.Rendering.OpenGL.GLShaderProgram, GFDLibrary.Rendering.OpenGL.GLCamera)
at EVTUI.ViewModels.GFDRenderingPanelViewModel.DrawScene()
at EVTUI.Views.GFDRenderingPanel.OnOpenGlRender(Avalonia.OpenGL.GlInterface, Int32)
at Avalonia.OpenGL.Controls.OpenGlControlBase.Update()
at Avalonia.Rendering.Composition.Compositor.CommitCore()
at Avalonia.Rendering.Composition.Compositor.Commit()
at Avalonia.Media.MediaContext.CommitCompositorsWithThrottling()
at Avalonia.Media.MediaContext.RenderCore()
at Avalonia.Media.MediaContext.Render()
at Avalonia.Threading.DispatcherOperation.InvokeCore()
at Avalonia.Threading.DispatcherOperation.Execute()
at Avalonia.Threading.Dispatcher.ExecuteJob(Avalonia.Threading.DispatcherOperation)
at Avalonia.Threading.Dispatcher.ExecuteJobsCore(Boolean)
at Avalonia.Threading.Dispatcher.Signaled()
at Avalonia.Win32.Win32Platform.WndProc(IntPtr, UInt32, IntPtr, IntPtr)
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG ByRef)
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG ByRef)
at Avalonia.Win32.Win32DispatcherImpl.RunLoop(System.Threading.CancellationToken)
at Avalonia.Threading.DispatcherFrame.Run(Avalonia.Threading.IControlledDispatcherImpl)
at Avalonia.Threading.Dispatcher.PushFrame(Avalonia.Threading.DispatcherFrame)
at Avalonia.Threading.Dispatcher.MainLoop(System.Threading.CancellationToken)
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(System.String[])
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(Avalonia.AppBuilder, System.String[], System.Action`1<Avalonia.Controls.ApplicationLifetimes.IClassicDesktopStyleApplicationLifetime>)
at EVTUI.Program.Main(System.String[])
Segmentation fault```
For the MLa_ (head motion) the UNKOWN option seems to make characters have this frantic look around. You can see it on ryuji and joker but it happens pretty quick after the recording starts (don't worry about yusuke).
Oh god, all the segfaults 😅
Fortunately most of these seem to be a similar issue, except Joker not showing up for you, which is weird. He shows up fine for me 🤔
He showed up a bit after that message. It was after I switched projects atleast.
I'll see if I can recreate it later. Gonna try out all of the speeds on this unkown
Still weird, but asset management still needs work -- including being able to see modded models and not just vanilla ones.
Very true.
Also, it seems newly added versions of the MLa_ with this specific UNKOWN lookat breaks. Not exactly sure why.
Hmmmm. I wonder if it's a command version thing....
But it works if you just change it on an existing MLa_?
oh I see just it being new causes it to break I think. Let me test with more of them.
Is direct supposed to be faster or is it supposed to be slower?
Direct is supposed to snap directly to the new position without animating the in-between, I think.
It might be better to put direct under fast then. Since it would be faster than fast.
And yeah, it looks like new commands are broken.
Yeah, that's the order in the enum (direct = 0, slow = 1, etc.), but I should be able to rearrange it.
What an odd order
Hmmmmm, I wonder what's different about the new ones other than command version 🤔 That might be it, anyway. I just leave it at default 0 but I should probably... not do that.
i'll try other commands along with seeing if maybe just copying the command will work.
Good idea!
Yeah it's new command only. Along with that a new MSD_ command worked (ann in the back). But i'll check more.
so true
I got this error saving while p5 was still opened, probably just change it to a "You can't save while the game is running dummy"
Imagine that happening
A new MLc_ command works.
New MAt_ commands might not work. Needs more testing.
nvm
something looks different about ryuji's face
So, so far it's only new MLa_ commands that don't work?
I think so. Off the top of your head what are some new ones that I haven't checked?
I mean, plenty 😅 I'm curious about movement and rotation, but those don't really have good previewing yet.
MFts isn't that important but could be fun to play with. In a different scene where they're actually walking, though.
I will try all of them right now
Any other things you noticed about this look-around effect? It seems like an extra simplified version of the MLw_ command.
It does interact with the speed, was gonna show that but then got caught up with the command being broken.
Gotcha.
I think thats it otherwise. I also don't think the unknown bool on the lookat does anything. Though I didn't test it specifically.
so regular animations can still play even though it's attached.
new versions of MAt_ work btw.
Looks normal to me
Makes sense, but then I wonder why MAAB needs to exist 🤔
might be a morgana specific thing. But i'll try and see if kasumi can take MAAB
Also, I don't know if this is comfirmation bias. But I think the unkown in MAt_ makes it attach faster.
It’s missing Akage
so I got another error on MAAB
wait huh
So I added a new MAAB, first the previews didn't work. Then after pressing the up arrow for the animatuon ID it gave an error. But now both the up arrow and the previews work.
this must be why before the previews for joker didn't work
Would’ve been easier with Akage
I was able to reproduce it. Now I have to record it.
oh I see, it is just this bug. But in a different way
but here it is anyways
Yeah, I definitely need to patch up this null issue, lol. I have no idea why it doesn't show up for me....
might be windows only
But also, if you're pointing to asset 1, that's probably going to be the field model, which definitely won't work yet.
number 2 is actually the field🤓
Joker is basically always 3. I think 1 is AltField...?
slipping in a mod.cpk with the modded models/anims into your cpk directory let's you see them so it might be a good workaround for now
LOL, yeah, that's a good workaround.
Can you switch the models of asset IDs yet?
Not yet! I'm currently working on a PR to add an Assets tab to let you do that.
And to add new assets, etc.
Right, I did see a new one there besides main (which totally didn't confuse me for a sec)
So when you say that new MLa_ commands break, how do you mean? Do they crash the game, or just not show up?
Essentially, it'll do what joker is doing. It's an old video so don't worry about the dialogue. But every lookat option does the same thing just with a different direction according to what it does.
Also sorry, I had other stuff to do. So I couldn't test as much. I'll get back to it for a couple hours then continue tomorrow.
All good! I've been at work all day, anyway, and you've already been a big help.
That just means I need to be a big big help.
I see... that's for the UNKNOWN option that should probably be renamed to Look-Around? I wonder if it's because the coordinates are all set to zero.... I've hid the coordinates for Look-At in a lot of cases, but maybe they're necessary even when it's just a nodding or looking-around motion.
Could be worth looking into.
It'd be easy enough to just not hide them anymore, but you could also edit them when they're visible and then set the other options to something else that hides them, and they'd still apply. Just to see if it does anything.
you could do a quick and dirty process to get them in EVTUI and I could test it?
They'll show up as editable if you pick Look-At and Coordinates as the motion and target types, respectively.
oh i see
You could also try the Model target type and specify 101 as the helper ID to get the model to look at another model's right hand, as another example of stuff that currently gets hidden unless you've selected a certain setup.
I've been debating whether to use the "helper" or "bone" nomenclature, since they're called helpers in the code, but I feel like people usually refer to them as bones... and maybe they're different things? I don't know enough about modeling for that 😅
I'm fairly sure they would be bones. But im not sure of it myself.
The beta editor calls them helpers, and GFDLib code has gfdHelperID as the property name of the IDs 🤷 so I dunno.
I think we need to kill atlus
Might just be the GFD terminology to call them helpers, or maybe helpers are another piece related to bones...?

Guess maybe if someone shows up in here that knows they can tell. But i'd say it's probably fine for now to call them helpers.
in any case, just tested MAB_ seems to work correctly.
MAI_ also works correctly.
I love the chaos in these tests 
I couldn't find morgana's ID in 5 seconds so I chose the next best person.
MAIp works
Spoilers for ||Kasumi being dead|| 😱
I knew something was off
I don't know if MCSd works but MAtO does. Will test MCSd out more.
Also this color picker is really cool, you did a good job ajda.
I can't take credit for the color picker design, since it's out-of-the-box, but I'm glad you like it!
I can't believe you would lie ajda. You made this : )
helpers aren't really bones, they're a property that can be applied to nodes so game code can perform special actions with them
(gfd has several built in functions to find helper nodes within a node hierarchy)
I see.... 
Im trying out different options but im not sure if MCSd actually works. Granted this could be just because it's a new command. I'll keep trying it though.
It gets used for ||Wakaba's third semester model|| a lot, so possibly you can find the events she's in and modify the MCSd commands for her model.
I see, I shall look there then.
accidentally put in a wrong event ID and got this error
Hm, there's supposed to be a specific message for the event not existing, so not sure why that's not getting used. But I get the above, too, now.
Is there a specific event off of the top of your head? Been trying the events with her in them and can't seem to find the command.
No see, it was all a 5d chess move. It wasn't lying.
Okay, it does actually get used in E511_080 on Joker and Akechi's models, starting at frame 159.
That is right after a Wakaba event in E511_070, so... 
As I said, 5d chess move.
Seems as though after saving the event it can't find the akechi 3rd sem bustup and will hang infinitely.
actually wait let me try something rq
Bustups can apparently be dynamically loaded based on the date.
Oh, yeah, that's true.
that would be cool to implement into EVTUI. Models can have the same thing as well (one that comes to mind is the buffet event).
I do plan to add variables like that at some point.
awesome
I think the command worked. But I was too caught up with the bustups to actually record it.
though the colors didn't make sense
I could have the RGBA order wrong.
seems like it adds these little rings around the bottom of them.
they don't do anything besides exist
i'll try out the other unkown options
Ooh! I mean, that makes sense. It just changes the color of the shadows cast by the models.
Was that the color you had in the editor?
they looked different before but maybe I just wasn't looking correctly.
the unknown #1 doesn't seem to do anything.
one of them is 3 while the other is 1. And I don't see a difference.
it's hard to tell but the last 2 unknowns definitely control how far the shadow goes.
also finally turned back on the ui toggler
Unknown #4 controls the inner circle and #5 controls the outer circle.
for the colors. Unknown #3 seems to be in the inner one and #2 seems to be the outer circle.
still not sure about unknown #1
What's the difference between #3 and #4...? (Or #2 and #5?)
2 and 3 are the colors and 4 and 5 are the diameters of the circles.
unkown #1 does something with it's visibility.
I see! Those look like the opposite colors of what's showing up 🤔
that might be what unkown #1 is for also. Let me see rq
akechi's is definitely different compared to this.
let me try joker
doesn't seem to have done anything.
so for unknown #1 2 makes it invisible. 1 and 3 seem to do the same thing. You're seeing 1 rn
I switch between RGBA and ARGB in the editor, so clearly that's not correct here....
Really?
Well, it looks like red and green values are getting mixed up between the two. So that'd be consistent with it needing to be RGBA and me getting it mixed around.
i see
Oh yeah, so it's broken in a simlar way to the other one when it's made as a new command btw. It wasn't said before and I don't want the thought buried.
Broken as in it doesn't do anything, or broken as in the colors are wrong?
the former, like the other command (I guess except that it still 'works').
MDt_ works
I will test all of them tonight.
Can you sent your EVT with the MCSd edits? I'll see if I can work out the issue with the colors.
YESSS.
both Mlc_ and ML_ work
Is that pink color consistent with what you set in the editor?
I don't think MLw_ works. Joker should be looking around here. But he isn't.
Based on this, it looks like Joker's shadow is inverted while Akechi's is consistent with the editor. Does that seem consistent with what you've seen?
MMD_ works but I gave him a walking anim. Maybe the idle overrides it?
I was thinking it was inverted but changing the unkown 1 didn't seem to do anything besides making it invisible.
Right, I just mean in terms of editor vs. when the shadow is displayed. Although Unknown #1 may also invert the opacity, i.e., make it basically invisible....
But no, you have the same opacity for both, wh... 
I think I saw a ghost ascending
Hm, it might be easier for me to track the issues in a document so I don't lose track of them....
Any chance you want to put your findings in a Google Doc? 😄
I will tomorrow
Perfect 
final one on the list you sent here. MScl works
are there any more you want me to test before I sleep?
I mean this list btw
You've given me lots of stuff to work with regardless, so go on to bed. And that list is comprehensive, so if you've covered that, we're good to go for now.
awesome, I will go on to bed. Have a nice time
Okay, I thiiink I fixed the color mismatch issue. And possibly also the backspacing null reference issue. You can try building from the branch psy/model-commands-tweaks to see if the fixes make sense.
I will try it out in a bit
trying it out now
I keep forgetting to say. The /s on .\scripts\bootstrap_win.bat are inverted. I don't really know how to use github to change it.
looks like the null reference was fixed. Trying out the color mismatch thing now
the colors are now correct (joker is the example here). I will see if I can figure out what the unknown is now
also for reference the unknown is on 1 currently. Trying 2 then 3
2 is visibility. I assumed it'd be so but wanted to make sure.
I'll put this in the google doc once im done btw
yeah it really looks like it does nothing. Unless it requires something else? I have no idea.
Anyways, google doc time
https://docs.google.com/document/d/1sSxmcbZyB_GEfoQry6Kly8MK7oRR8nquTQpytyy2ltw/edit?usp=sharing here is the doc. Every model command is set up with the new subtab things. It's pretty barebones otherwise. But it'll eventually inclue all of the new commands that are implemented and tested.
if only I knew how to add videos without uploading them to youtube
I missed testing MLw_ and it shows. Since I don't think it works when it's a new command.
there we go, all of them have been documented and most are completely fine. Just a couple that need testing/fixing.
🤩 Perfect! The formatting is great. This would be a good way to track per-command issues and discoveries in general. (Not sure how to eventually turn this info into public-facing documentation, since current stuff is geared toward EvtTool, but maybe in EVTUI-specific docs at some point....)
So new MLa_ commands do work? And did you figure out anything with walking animations on MMD_?
oh right, forgot about that whole thing
Let me test MLa again. And I didn't do that much testing with MMD
i'll test both of them
Might just be a matter of figuring out what each of the fields does. I'm not 100% sure how to get walking to work, either, since a lot of the walking "animations" are in fact just static poses.
I wasn't really able to before due to having a bunch of other commands to document. But now I can look into it more.
oh also, whats the 'model ID' supposed to be?
That's for specifying a model (and that model's helper) that you want the main model to look at. You can do that instead of specifying exact coordinates.
☝️
then that might not work currently. I need to make sure though
It's not used often, but I think it's in E511_310...? Seems like a command to get a character to look at their right hand, in that case.
interesting, MLa does actually function now
need to record it
I wonder what made it bug last time?
i'll mess around with MMD now
I just tried the MLa with the unknown bool and it seemed to actually change it.
Let me record it again
Oh yeah, I also think ML__ is missing from the document.
That seemed to work, other than the color stuff that's since been fixed.
I don't think that was in the list iirc
It was, lol. But you did already test it, in any case.
oh
oh right
the one on the left is with the bool on and the right is with the bool off.
theres a bit of stutter with it on. Very interesting.
Huh. It's definitely something, but not clear what it's supposed to be.
Oh, for new MCSd commands that don't seem to work, what did you set the Unknown to?
all 3. 1 and 3 seem to be the same and 2 turns it off
Hmmmm. Wonder why it doesn't work....
No idea honestly. Is it supposed to be 3 options or just 2?
It only ever appears as 0 and 3. I wonder if it's actually a bitfield for enabling/disabling the inner and outer circles, respectively....
So 1 and 3 should have the inner circle enabled, while 2 and 3 should have the outer circle enabled. 0 being neither, and 3 being both.
I technically never tried 0. Let me see what happens.
I suspect nothing will show up, but we shall see.
So it does turn off both inner and outer circles...? I think 2 is the biggest question -- whether that actually leaves the outer circle on. Might be hard to see.
Well, that's definitely just fully invisible for 2...
I still think it's a bitfield, but I have no idea what that second bit (the difference between 1 and 3) does 
Clearly the first bit is to show/hide the shadow, though.
i'll try different colors
If we don't find anything, I'll just split it into Enable model shadow? and Unknown checkboxes.
here's what it looks like at 99 diameter
Does 1 look any different for those colors+diameters?
im trying it out now
Might also not be diameters but rather something like blur radius/strength....
No difference... Unknown it is!
MCSd still doesn't work as a new command, though? Just to be clear?
nope
MMDs that work don't even use the idle/moving animations
let me recreate it rq
this is what it looks like for reference
That probably means it uses the default settings for animations, then. So it's more about figuring out how to get the custom ones to work properly. (Maybe Enabled? should be Customize?)
Yeah, im curious if it's might be a MCSd situation aswell. Just recreatingit now
It does have the unknown at 275 aswell.
It's both diffrerent and has no walking anim recreated compared to the actual event version.
recording it now
left is recreated and right is from the event.
Can you share full screenshots of what the UI inputs look like for both?
first two are the event version and the last two are the recreated version
The only thing I can think of is it actually does use the stuff in the Moving and Idle animations, even when not "Enabled"....
If you enable them all, does the info there match?
I also could have that checkbox switched around, so it should actually say Enabled is true in those cases 🤔
I see... so then yeah, either Enabled actually is something else (seems unlikely because that's direct from the beta editor) or I just have it flipped in the UI.
Cool, that should be an easy fix, at least.
anything else you want me to test?
@sand smelt do you think you could pin this?
so it doesn't get lost
Hmmmm... I think the only thing left is the mystery of new MCSd commands not working, right? Or was there anything with MLw_?
thank you
np, thanks for documenting all this stuff
it's no biggie. Im always glad to be of service
Seems like MLw works fine. Just the bool thing now for it.
I wonder if thats actually why it seemed 'broken' when I first tested it?
actually let me test it again on the original event
Could be. I wonder if it's like a "reset before looking around" thing....
oh right. If I exit a event in EVTUI while the game is still running. Then go into a new event I get this error
My try/catch doesn't cover that case, eh? Wonder why....
oh right thats for MLa
these names are confusing smh atlus
still need to figure out why the model thing wont work for MLw
wait no
thats MLa
;-;
lmao
ohhh right
for some odd reason the couple times I tried MLw it wouldn't look around. I think, I need to look at it again
how many commands are left for implementing into EVTUI? Just curious
kinda wanna try out that free motion one
...many 😅
I'm trying to prioritize the ones folks would be interested in, though, so I can try to get that one in soon.
nah it's fine. Just was curious really. Shame that I can't help out.
Beyond that, I also want to prioritize camera stuff so we can start previewing positioning and not just animations.
It's unfortunately pretty complicated to link up the parsing and UI bits, yeah
Not much for it, really. But finishing up the model commands means I've added a lot of convenience functions, so maybe it'll go faster from here 🤷
I believe in you ajda
And i'll be sure to test every step of the way.
how tedious is it to commit on gh?
you could potentially commit a command once you finish it. Rather than doing a whole chunk of them then releasing it? idk how viable that would be.
It's not tedious or anything. I was grouping things more for organizational reasons, but if it makes sense to merge in even smaller chunks, we can do it that way.
You don't have to. It was just a thought I had.
I can also just keep the branch updated on the repo rather than just locally, so you can test the working branches.
Could work
Giant shoeless Sumi is truly... something. I sure hope I don't live to regret what I've released into the world 😅
P5R but all the girls are 8ft tall 
mrw i made character creator and people turned makoto into a femboy
good idea
Based....
also interesting thing. This event played the original VAs lines for takemi. No idea why.
RIP....
Your power... mirrors my own...
I do wonder why they even made this command a thing? I guess maybe for certain scenes?
It's probably more for items than character models, but lmao. Too much power to give us.
very true
Okie-doke, merged the fixes from before + the additional MCSd and MMD_ fixes discussed since
I couldn't see anything obviously wrong with newly added MCSd commands, so we'll leave that up to future investigation, I guess.
Oh yeah, I think my only other big remaining question is what the difference is between MAAB and MAB_ when animating an attached object.
I'll look into it in a couple hours.
opening the event with MCSds has them looking different even though I messed with both.
Gonna see what happens with a new version of them
these are the standard configurations of the original versions of them.
That all looks right to me.
new MCSds work on this event specifically
so then theres something in this event that makes it work
Might be the ENV.
Maybe it needs the EnLI...? I assume EnL0 is always set in the ENV, but maybe EnLI isn't 🤔 But I suppose it could be related to either one.
let me see what happens if I delete them
was not the ENV commands there.
i'll see if theres any other ones before the command
Wow, is that what the laundromat usually looks like outside of third semester? I never noticed how extreme the saturation got there....
Hmmmmm. Weird!
i'll keep picking at this event to see what it is
EVENT/E100/E180/E184_001.EVT: 1, 1, 307
EVENT/E100/E180/E186_001.EVT: 1, 1, 1
EVENT/E200/E220/E225_001.EVT: 1000, 1000, 1000, 1000
EVENT/E200/E240/E243_401.EVT: 1, 1, 1, 36, 170
EVENT/E400/E400/E409_040.EVT: 1, 1, 1, 1, 1, 1, 1, 1
EVENT/E400/E480/E482_020.EVT: 1, 1
EVENT/E500/E510/E511_080.EVT: 159, 159
EVENT/E500/E510/E511_230.EVT: 1
EVENT/E700/E700/E703_200.EVT: 1
EVENT/E700/E720/E722_042.EVT: 1, 1, 1027
EVENT/E700/E720/E722_200.EVT: 1
Here are all the events that use it + the frames where you can find them.
I see, I will check them out. Thank you
Interesting how some of them get spawned in instantly.
That mostly makes sense. The event we've been looking at is a bit weird for having multiple different locations in the way it does.
true
not even the field command can stop the shadow
could it be from any of these fields before stuff gets loaded in? Not sure if this was looked at in EVTUI.
511_080 and 184_001 respectfully
It is in the new branch I'm working on, but there's nothing in there that should relate to this, no.
Why do you think that? Just curious really since I'm kinda doubting it's any of these commands in EVTUI
The event we're looking at doesn't have anything unusual there, either in terms of ENV definition or in terms of any unknown booleans.
Do you remember specific events where the command doesn't work?
481_010 doesn't work (it's the giant shoeless kasumi one)
i'll try more events just to see.
That one does have an extra unknown boolean checked in the header, but that's the only big difference I can see.
yeah the unknown bool is "never allow the MCSd command : )" iirc
does not work on 275_001
is there really nothing connecting all of these events together?
there has to be something specific that does it.
Unless its something hardcoded which idk how that would work.
The one above doesn't have the thing checked in the header, so back to square one.
The shadows there seem to be different than the ones in the laundromat.
Like, the laundromat ones are just the circle things, while the above actually seem to be cast realistically from the model shapes.
I forgot to screenshot it. But 521_021 also doesn't work.
also yes I forgot about giant sae
Where’s giant Akage
in your mind
My uneducated guess is that somewhere in the actual .ENV file it defines what kind of shadows are cast, and only the lazy circle shadows count for this command 🤷
Maybe? Though that feels to constricting
so I have good news
750_011 let me add the MCSd. While it also has the realtime shadows.
the 8ft tall valentines event
also good news. 752_000 also works with a new MCSd.
hmm, it seems like valentine/white day related events can use MCSd.
this is 754_000 btw
gonna try more valentines/white day events
522_040. Definitely seems like they have something specfic in common with eachother. Which make sense, but should help in finding what makes it happen.
also they translated this unused event almost. Which is cool
is there a way to open up multiple events or evtui instances? i cant get evtui to open another instance if its already open and i'd like to look at another event as a reference while im working on a different event
I don't think so sadly. If you could start up another exe of it them maybe it could work.
yeah i cant get another exe of it to start up, ive tried the release and debug versions as well as the x64/x86 ones
I just tried cloning a new one and even that doesn't work ;-;

Aha, yeah, there's specifically code to block multiple instances from opening... it's to make sure you can't break stuff by editing the same file in multiple places 
I've thought about being able to use multiple events as reference, though, so I think that will be something worth implementing sooner or later.
Maybe you could have it be that you can open multiple events, just not the one you're editing currently? So like you can't open 2 instances of 522_040. But you can open 522_040 and 754_000.
Yeah, I can think about how to make that happen 🤔
Yeah it'd be nice if this window (or the project one) was accessible when an event is currently open
If you want to be extra cautious you can have it only permit read only mode
It breaks some of the assumptions in the backend code, but it'd be nice to have.
i'd say only on a per project basis. Like only having 1 project open but multiple events open.
cause idk why you'd need 2 projects open at once

Comparing between mods, maybe....
I mean I'd be down with either. Just that opening multiple projects might be more work for you to redo.
^^
Eh, not really 😄 If I can think of a good way to allow multiple editor windows without breaking everything, it would all be equally doable at that point.
I will ponder this....
also, did you see any correlation between the events for MCSd?
I didn't try all of the valentines/white day events but they have to have the key to this. Since they all work with a new MCSd.
i'll try them now actually
Also, is it possible to make the main window move? It keeps getting stuck on my second monitor
wait you can? les go

it has some sort of lighting property here. Very interesting.
752_010 btw
if the next one has it im convinced
752_020
LOL, you mean that splash image/menu? I mean, I could probably add the border back in so you can drag it around like a normal window, but it wouldn't look as cool 😄
There's probably a way to do it, though.
you could make it have a similar funcionality as windows key + arrows does.
something more streamlined though
Do you just want to be able to drag it around in general?
I wouldn't really care either way. Just some way to move it between each monitor would be neat.
cause it's just the menu that doesn't move, unlike the events. So it only really needs to stay centered on the monitor.
Yeah, there are keyboard shortcuts I use on Ubuntu for moving it between workspaces like that, so IDK what the equivalent here would be 🤔
It should be possible to make the image in the middle drag the window around if you click it.
Ajda is there a list of what the commands do cuz I know MSD are models and MSCL are the sizing and I clearly know msg since I edited text a good amount of times but that’s it and I wanna know what each command do so it’d be easier for me to see what the thingy can do
There's a page on Amicitia that gives an overview of the commands. The only issue is that it's based on EvtTool output, so specific fields mentioned there don't relate to what they're called in EVTUI. (And also much of the more specific info is incomplete / out of date.) But it's still a good reference, I think, if you just want to know which commands generally do what.
EVT is a binary event format used by Atlus in Persona 5. It is used to setup cameras, objects, animations, dialog and more in cutscenes where you can't control the character. In other circumstances where dialog is shown but you still briefly control the character, those scenes are likely using BF instead.
All right, I've tried adding some of the windowing changes you (and Wisteria) wanted -- access to (+ draggability of) the main/splash menu at all times, ability to have multiple (unique) events open, etc. It's in the branch psy/more-flexible-windowing for now... since it's a pretty significant backend change, I'm going to ask that you test it from there for a bit to make sure stuff doesn't break horribly before I merge it into main 🙏
(I haven't had time to check out the other events re: MCSd stuff yet, though.)
☝️ So this and more should now be possible... and hopefully doesn't break anything....
I did some due diligence, but maybe keep extra copies of any modded events during initial testing, just in case 😅
no issues so far, it seems to work super nicely
the only downside is you can't copy and paste things between two event editor windows but just being able to reference another event with the gui is really nice on its own
also the assets tab disappeared for some reason
also im not sure if this is related but the msgs are displaying in jp for some reason
instead of eng
okay reopening the evt fixed it
I will test aswell now
and that's fine.
seems like if you open another event after already opening one it stops being saveable. So only the new event that was loaded is saveable.
Which makes sense, given that it's using the same CPK to edit the events.
Yeah, this is a separate branch off of main, so it doesn't have the Assets tab yet. Whichever one gets merged first, I'll rebase the other so you can have both.
Oh, weird. I kind of doubt it's the CPK, and more likely it's some of the working files... I'll need to temporarily get rid of that special message so I can see what line the IO error is coming from 
i'll test it once you get rid of it
OK, pushed a potential fix to the branch 
looks like it works
Perfect!! Let me know if you hit any other issues.
🫡
Yeah, this would take a bit more effort to get working, but I'll make note of that as a TODO 🤔
I mean how it is now is already a major improvement.
Does moving around the main/splash menu work how you wanted?
Yeah it works perfectly. I don't have any issues with it
@fossil kettle do you have any? Since you also tested it.
only issue ive really run into is an occasional crash when trying to open a project when an event is already open
im not sure how to launch the program with a console log though
do you have git?
yes
let me record my process for getting the console rq
If you can get logging working, I'd definitely want to fix that.
this should hopefully be easy to follow. If you have any questions just ask
also rq ajda. For the windows script the slashes are the wrong slashes. it should be ./scripts/bootstrap_win.bat
not .\scripts\bootstrap_win.bat
or atleast thats what works for me every time I clone it.
Lol, okay, I can change it if that's easier for copypaste.
It moreso for other people. Cause I think I only found out by searching online (though I can't remember my first time doing all of this). But I definitely was confused the first time.
oh yeah, for when he merges the new commits. If theres only the 'main' branch. You don't need to do the git checkout.
thats what ive been doing, i usually run the program with dotnet run using a cmd window
im not really sure if its logging though?
git logs it
Yeah, those are just build warnings.
its not that im having build problems its that idk if its actually logging stuff like program errors
It'll show error logs when it actually crashes, too.
It you're seeing warnings, you'll also see errors, so you should be good to go.
I should really add a general error catcher so this isn't needed....
yeash i was just confused since im not seeing debug logs
is that windows7???

@faint plinth @amber moth okay it just crashed and didnt give me any kind of error message

well im running windows 10.
im pretty sure its only giving me a build log
what net. do you have?
oh true
i have net 9
that might be it
I can't imagine why different dotnet versions would give you error messages or not, but I've been developing on 8, so IDK what happens if you try to use 9.
can i just run it with net 8?? or do i have to uninstall net 9
i have net 8 installed so it should... work?
i think the problem is though im just
not getting any kind of debug log
I tried getting ne of our other team members to do it through git and they couldn't build it with net 9. But I think it was solely with just net 9 that they had the issue.
because thats how I did it
and it works
and gives a debug log
which is what you were asking
yeah interesting
i mean theyre both terminals, right?
why not try it with cmd on your end
You asked for a debug logger that worked specifically with EVTUI. Idk what else I can do with that other than show you what worked for me.
I didn't learn this through cmd. Just through git.
How many times did you load an event before it crashed?
A handful, maybe about 5 or 6 times?
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.File.CreateText(String path)
at EVTUI.UserCache.SaveToYaml(User user) in C:\Users\Freeman Cavarretta\EVTUI\src\lib\FileIO\UserCache.cs:line 62
at EVTUI.ProjectManager.SaveUserCache() in C:\Users\Freeman Cavarretta\EVTUI\src\lib\ProjectManager.cs:line 86
at EVTUI.ProjectManager.LoadProject(Int32 projInd) in C:\Users\Freeman Cavarretta\EVTUI\src\lib\ProjectManager.cs:line 189
at EVTUI.DataManager.LoadProject(Int32 ind) in C:\Users\Freeman Cavarretta\EVTUI\src\lib\DataManager.cs:line 77
at EVTUI.ViewModels.ConfigurationPanelViewModel.TryLoadProject() in C:\Users\Freeman Cavarretta\EVTUI\src\gui\ConfigWindow\ConfigurationPanel\ConfigurationPanelViewModel.cs:line 360
at EVTUI.Views.ConfigurationPanel.UseProject(Object sender, RoutedEventArgs e) in C:\Users\Freeman Cavarretta\EVTUI\src\gui\ConfigWindow\ConfigurationPanel\ConfigurationPanel.axaml.cs:line 120
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
at Avalonia.Threading.SendOrPostCallbackDispatcherOperation.InvokeCore()
at Avalonia.Threading.DispatcherOperation.Execute()
at Avalonia.Threading.Dispatcher.ExecuteJob(DispatcherOperation job)
at Avalonia.Threading.Dispatcher.ExecuteJobsCore(Boolean fromExplicitBackgroundProcessingCallback)
at Avalonia.Threading.Dispatcher.Signaled()
at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam)
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
at Avalonia.Win32.Win32DispatcherImpl.RunLoop(CancellationToken cancellationToken)
at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl impl)
at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, Action`1 lifetimeBuilder)
at EVTUI.Program.Main(String[] args) in C:\Users\Freeman Cavarretta\EVTUI\src\gui\Program.cs:line 21
``` This should be it @faint plinth
also my git screen
Ah, yup, that seems likely....
I don't think it's a net issue for you wisteria. Since this is mine.
Though I have no idea what else it could be.
can you run dotnet --info and paste the output here
Version: 8.0.400
Commit: 36fe6dda56
Workload version: 8.0.400-manifests.56cd0383
MSBuild version: 17.11.3+0c8610977
Runtime Environment:
OS Name: Windows
OS Version: 10.0.19045
OS Platform: Windows
RID: win-x64
Base Path: C:\Program Files\dotnet\sdk\8.0.400\
.NET workloads installed:
Configured to use loose manifests when installing new manifests.
There are no installed workloads to display.
Host:
Version: 9.0.0
Architecture: x64
Commit: 9d5a6a9aa4
.NET SDKs installed:
5.0.408 [C:\Program Files\dotnet\sdk]
8.0.400 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 5.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.32 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.0-rc.2.24473.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.15 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 9.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
x86 [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
pretty much the same as mine :/
I never had a time cloning where this happened to me as well. So no real idea, has to be something though.
hmm
@faint plinth could you look into having the program output its log to a txt file? like how reloaded-ii does it
Yeah, I want errors to be easier to track/share. Working on it 

This particular error is what I was afraid of with these changes, lol... time to actually fix how the user configs are handled, I guess....
I think it'll be worth it in the long run. Still very glad for all of this though
@faint plinth quick question, does starting frame do anything in-game or is it just a visual thing for the gui? it doesnt seem to be doing anything for me in-game
I think I just forgot to implement saving for those changes, lol, so they don't actually modify the EVT yet.
But once I do that, I would expect them to do something 😅
i think it does save that change
not sure if it does anything or not
not a huge deal since you can just use a framejump but its worth noting/checking up on
Oh, yeah, I see now where it gets saved... huh. Maybe it's only used for debugging...?
I can probably look into it a bit more tomorrow. I'll also do the same for MCSd.
iirc (take it with a huge grain of salt) i think it does get used. i seem to remember there are a few events that start late
I'd be curious if you could find ones like that, so we could see if it's this field or just FrJ_ that's leading to the late start.
that's the hard part 😅
it's been a minute since i did any evt editing
090_100 has one
the newer unbuilt version of evt tool has a lot more things labeled
(and my fork has more potential labels)
90_101, 102, 103
92_001, 100
430_001
just to name a few with start frames > 100
Okay, I attempted to get cross-window copypaste working in the latest changes to psy/more-flexible-windowing, if you wanna check it out and see if it works for you ✌️
Now to look into the intermittent crashes + easier error tracking....
E430_001 is the official ||everyone-beats-up-Ryuji|| event, isn't it? If so, it definitely does start at the beginning and not at frame 769, which is the starting frame given in the header.
yup. the first commands are around 0-50ish. i'm wondering if it potentially has something to do with events/movies that happen before the event?
i dont have a save file that far in so i cant really test
I just relized, I don't think I actually have this. Unless it's somewhere I haven't looked
It's also only in the branch with the new Assets tab.
oh
Im actually intrigued about this (probally again)
how so
Because new tools are Cool and I probably said thus before
It's also an interesting insight into the evt files and flags


Okay, I maaaybe fixed this in the latest version of the psy/more-flexible-windowing branch...? I tried to, anyway, so it'd be worth seeing if you can still recreate the error.
(Next, to add a general error-catcher / logging....)
i'll check
the error for having 2 of the same event open works
looks like this is fixed. I've opened 8 so far and nothing has happened.
Nice... thread-locking saves the day 😎😎😎
anything else you want me to test?
Hm, not related to these windowing changes, I don't think.
I am still curious about the difference between MAAB and MAB_ for attached objects, though, if you've got time to look into that.
oh yeah, forgot about that. I'll look into it after I do some more testing with MCSd
okay, so good news. This 'toggle' for MCSd is inside the events somewhere.
I copied everything inside of event file 752_010 and put it into 481_010
And the shadow works correctly now.
Huh. What part didn't you change? Just the header?
Or you did change the header...?
I mean everything. As in CTRL A then copy paste. It doesn't narrow that much down but atleast it shows that the toggle has to be somewhere in the EVT file.
I did try doing just the header (I think thats what it is) and it didn't make the shadows appear.
this part is the header right?
Yeah, the stuff up top.
so it has to do with either the alt field or field command
Ahhh, THAT makes sense.
it's in the field command
though something about this seems weird
left is the shadow-less event. And right is the shadow existing event.
That Field1C doesn't do it. So it has to be either the resource ID or the Anim ID
which is just really weird and im not sure what exactly we can do with that
okay, figured it out
so it seems to be connected to the Resource ID and the Field1C. The resource ID I assume needs to be the same as one that has the shadows. And then the field1C needed to be 0 or it would crash immediately.
anim ID isn't connected to it so it doesn't change the outcome.
Hummm... so how does this relate to different events in Leblanc having different behavior? Which IDs are different there?
What events specifically?
You were showing different events, all in Leblanc, where sometimes the shadow worked and sometimes it didn't.
Not sure which were which, exactly.
Oh, huh. Didn't it not work in the one with Sae?
looks like I just didn't make the radius big enough
so it seems to be a per field basis
So, based on this, such shadows are only enabled on certain field models. And then that middle object/asset field (which is a bitfield, so this is a boolean check) needs to be zero if you include any MCSd_ commands...?
It seems like that. At the very least only certain fields can have the shadows.
I wonder if it's hardcoded?
Might be something in the lighting and/or materials.
EVENT/E100/E180/E186_001.EVT: 1, 1, 1
EVENT/E200/E220/E225_001.EVT: 1000, 1000, 1000, 1000
EVENT/E200/E240/E243_401.EVT: 1, 1, 1, 36, 170
EVENT/E400/E400/E409_040.EVT: 1, 1, 1, 1, 1, 1, 1, 1
EVENT/E400/E480/E482_020.EVT: 1, 1
EVENT/E500/E510/E511_080.EVT: 159, 159
EVENT/E500/E510/E511_230.EVT: 1
EVENT/E700/E700/E703_200.EVT: 1
EVENT/E700/E720/E722_042.EVT: 1, 1, 1027
EVENT/E700/E720/E722_200.EVT: 1```
Just to bring it back for easy access.
Are you able to mess around with some of the checkboxes on the Field assets in the psy/header-and-object-tabs branch to see which one(s) seem to have an effect on crashing with shadows?
Yeah I can try messing around with it.
Or did you make note of any specific non-zero values that crashed?
you mean for the field1C or the resource ID?
If it's just 1 like the event above, then that means the Field can't be checked as "common"... interesting.
I meant the thing that's Field1C in the EvtTool release, yeah.
oh I see
☝️Like yeah, the one on the left here means the field model is considered "common." For character models this has implications about which GAP files get used, but I don't know what it implies for field models.
Even numbers should work, and odd numbers should crash. But in that branch, you should just be able to check/uncheck the "Common?" box for the field asset, to the same effect.
fine i'll reclone it
I'll try to merge the other branch within a day or two so this branch can start having the multi-window benefits 😄
I have not seen this asset tab before wow this is a lot
ticking on the common box crashed it
Okay, cool. Confirmed....
Now, why it works this way, I have no idea. But that was some excellent sleuthing. Nice work!
Thanks, later on i'll try different fields it works on. So maybe we can figure out how to change the fields to make them work.
Then maybe have it as a dependency mod for event editor mods who want to use the command or something
i'll look into this now
Although...... does it still crash if you check Common when there aren't MCSd commands?
Ha, okay. So it's probably more to do with the specified animations not being available in the common files.
That makes more sense.
any way we can fix that for other fields?
It's probably more a matter of figuring out where the field animations live and preventing users from selecting invalid animations, or at least warning them about it.
I haven't looked into field animations yet, so I'm not sure what the path patterns are for them.
Character model stuff is super prevented from crashing, even in silly ways, so I'm kind of surprised field animations aren't similarly ironclad.
I assume because they're not as messed with often.
True....
ohhhh
I figured out why joker didn't load before I think
cause I changed the model ID to what it should be because our mod uses a different model ID for a different outfit. So then it doesn't show up.
Oooh, I see. Wisteria's hack of making a MOD.CPK containing your models would probably work here, but I'll get working on an actual solution for modded assets.
@fossil kettle where exactly did you put the mod.cpk in the files for it to work?
steamapps\common\P5R\CPK
oh, makes sense. Thanks

Btw, @fossil kettle, I think I fixed the crashing in the multi-window branch. It seems to be fixed for CG, at least.
nice! i'll test it sometime soon
gonna test the anim stuff now.
yeah, seems like attached models can use both MAAB and MAB_ (morgana)
im thinking it's that they can use both but MAAB is just more preferable since it deals specifically with attached models.
They probably used the same code as MAB_ and tweaked it a bit for attached models.
let me check out all of the unknowns
seems like the unknown(debug) doesn't really do anything.
I wouldn't expect the debug stuff to show up in-game, yeah.
🤓
I include it for completeness, but most likely it's just for Atlus's event editor.
would be cool to see what it does
We'd have to get some Royal beta builds for real for that 😄
Yeah, it's not in the P5 beta editor.
if only I had lots of money
Yeah, I have no idea how it'd be tweaked, though. I first wondered if it was a way of using the parent model's anims for the attached model somehow, but that doesn't seem to be the case...?
Maybe they didn't have an easy way to select different assets with their setup so they had to use MAAB?
no idea
Cause it works the exact same
It shall remain a mystery for now, I guess....
still trying these unknowns. They don't seem to be doing anything
which command/fields are you looking at?
MAB_, just trying to document these currently
not a whole lot of help without the evt field numbers
but i know fields 38 and 3c are static values
They're mostly from the bitfield. EVTUI parses things differently from EvtTool.
gotcha
unless it's like MCSd these unknowns don't do anything.
This is what the MAB_ parsing looks like, if that's at all helpful in comparing to EvtTool output. These should fall in the same order as the fields from EvtTool, although one of them is split in half (the two UInt16s).
(Probably not helpful, but it's hard to get a one-to-one comparison....)
All in all I think we need to kill atlus
this is what it looks like in evt tool. fairly similar logic
@faint plinth anything else you want me to test?
Hm, not really at the moment, unless you spot any other unknowns you want to test.
theres an unknown on the MAt_ so i'll look at that rq
so thats what it does
actually
need to test it again
Changes the attachment point...? 🤔
yeah no, does nothing
I forgot that I deleted the MAAB when testing and didn't put it back
Ah, gotcha. Well, who knows... it might be clearer what these things do once folks get into other events and stuff breaks as a result.
Interesting! Something with sharing the parent object's shader or not, maybe...?
Aw..... It doesn't work whether checked or unchecked?
Sumi the Hedgehog hello?
it was prophesized by charlie the chocolate factory
she even has a ponytail
and the same bangs
wow
The prophecy 🙏
Sumire! You're turning sumire, Sumire!
His harassment has escalated....
It's hard to tell much from the screenshots, but seems the same, other than the cinemascope, which is unrelated 🤷
doesn't look like it works actually. So maybe it's just certain models?
Oh, okay! That's the unknown checkbox again?
yeah
wanted to see what would happen if it wasn't a premade item model like the morgana bag
you're just not a true persona fan
do the other shoe options here work?
I didn't think to try it
These should all work, but the model needs to have corresponding nodes. Most don't, or only have one or two of these.
I think all vanilla models have at most shoe_0 and shoe_1...? But 2 and 3 should also work, based on the old MSSs thread.
I see, good to know.
(It is Nodes and not Meshes, apparently, so I've since edited the text there accordingly.)
Went ahead and merged the multi-windowing branch, so now psy/header-and-object-tabs has all the newest features (so, the new Basics/Assets tabs + the flexible windowing, etc.) ✌️
If it breaks... we'll figure it out from there!
I've figured out at least some of this.... For field assets, those last 3 IDs don't mean the same things they do for character assets. The first one is the (optional) player field animation file ID, the second is the crowd (.CLT) major ID, and the third is the crowd minor ID. How that interacts with the Common? check, or whether that check also means something different for field assets, I'm still not sure.
time to test
looks like everything works
seems like an event with MCSd togglability already on it doesn't crash when common is checked
when the 481 event is in the same configuration as this event it still crashes
I suspect it may actually be the Crowd (iirc that event uses CwP_...?) commands causing the crash when you toggle Common? on that field asset.
still crashed after removing the CwP commands from 481
Hm, then possibly also the numbers in "animation ID"s for that field asset. What happens if you remove the Crowd commands and also set those IDs all to -1?
I already did. This is 481
And this is 752.
Can you share the edited 481 event?
Okay, I think I'm a bit confused. The vanilla version of E481_010.EVT already has Common? checked. In the message I'm replying to, though, you mentioned that the crash happened when the field was checked as common, with or without MCSd... but that doesn't make sense if it's checked by default. Unless you only checked with a modded field ID, I guess...?
I meant with the things here changed.
Ah, okay. Well... that means there's a lot going on here that could break things, lol.
yes
im pretty sure it works fine up until the anim IDs are changed.
then they crash with common on
Interesting... well, the crashing is something in general with field assets and crowd files and possibly player animations, but I don't think we know enough about field-related files yet to work it out exactly.
soon it will all be revealed
Well, one possible reason is that F003_002 doesn't have a basic CLT file:
FIELD/NPC/F003_010.CLT```
...so it probably won't work if `Common?` is checked, because it'll be looking for that file.
I think if you have -1s there and common isn't checked, it will skip looking for a crowd file. But if you check common, it'll look for the one for that field, no matter what the latter two ID values are.
wane my to test it?
That seems to be what you've been finding already, no?
Finally figured out how the "starting frame" stuff works... that and the marker frames are all editor-only--as in, they're saved in the EVT so you can limit and mark-up your playback range for editing purposes, but they don't affect the in-game playback. The branch now makes that clear, allows you to mark frames, and (as a result) only has two (Royal-only) unknown flags left in the header 🙏
I still want to add some better visuals to the Assets tab, and once I've done that, hopefully this branch can be merged. Aaaand then on to the next stuff (more commands, hex editing mode for commands to cover un-implemented ones, etc.).
One thing I'm currently pondering re: assets... there are a lot of assets for which there don't seem to be external animation files, like Items (/Props, in EvtTool terms). But on rare occasions, they do have non-default numbers in the files.
As far as I can tell, this doesn't do anything... but is it worth leaving in the UI for now just for the sake of experimentation? Probably, but I'm not sure how to label it... maybe just Possibly Unused #1, Possibly Unused #2, etc.
do you want me to test them aswell?
Yeah, maybe that's the way to do it. I'll leave the fields in there with Unknown/Unused labels so you know which ones are still mysteries.
It'll be kind of hard to test, tbh, since for all I know they could point to something other than animations... but I can at least point you toward the events where there are non-default values.
That would be cool
Went ahead and updated the main branch to have the Basics and Assets tabs, because I don't feel like letting that continue to block other things I want to be doing 😅 So the new tabs are still a little barebones--I want to add more previewing, adding/deleting assets, etc., but I can't be bothered for now~~ and I'm trying not to let the PR sizes balloon any more than necessary~~.
Basically, all header and objects/assets fields should be editable -- just no add/delete yet. It shouldn't actually be hard to do that soon, at least.
Oh, I actually have a question related to script emulation... BF/BMD emulation doesn't account for embedded BFs/BMDs in EVTs, does it? I assume it doesn't and you'd need to compile them back into the EVT to mod them, but it's worth checking.
I don't think so. Since it's an issue for the navi lines and idk why they'd be different.
Navi lines are in the exe, though, right? As opposed to being in an EVT.
Probably still ends up working the same way, but 🤷
EVT is two letters off of EXE so it's probably true
True....
i didnt know that was a thing 
persona essentials does handle embedded bfs/bmds in (p3p/p4g) tbls so it could prolly be done
Lol, to be fair, I'm not sure that any EVTs used in the final game have embedded scripts (because they all use the external ones everyone is familiar with). It might only be unused ones that have them. In which case, I don't even know if the final game supports such embedding....
It'll definitely be worth a test once I handle it properly in the UI.
i feel like its probably not worth it if the game itself doesnt even use that feature, but out of curiosity what evts do this (and do they have content thatd be interesting to restore)
Hmmm, let me see....
A few that have embedded BF scripts....
...and a few that have embedded BMDs.
...And complete lists of all such events.
on a whim i searched p5rmsg.txt (i think the one included in modding-resources? its a ps4 dump in specific) for e090_001 and found it in multiple event paks. it has the lines you get from a newly fused persona
how do those work in final?
iirc after the fusion the msg pops up and once you finish the dialogue it ends
no i mean internally
Yeah, hm... And that BMD does exist externally. So let me see if I can figure out what's inside of the embedded one, if anything....
Okay, interesting. So there definitely aren't any actual embedded BMDs or BFs, but the flag that gets set in the beta P5 editor for embedding them still exists and is sometimes set to true... so it looks like this was just. Deprecated, I guess.
Like, I know that's what flag it is from messing with the beta editor, but it doesn't seem to do anything anymore 
same sitch with final og p5?
Seems so, at least if the beta files are any indicator. All of them give the offsets and sizes for all embedded BFs/BMDs as zero.
Even the ones where the flag for them is set to true.
Net zero information 😅
I swear it's a thing
But since the editor is older than the files in the beta, it must have been deprecated somewhere in-between, I guess.
...OH, I get it now. It's actually a flag for whether there's an external script or not.
...But I still don't know if it actually gets used.
OKAY, I think I got it. The flag is set when the default BF/BMD path name is being overridden -- so basically all of the E090_ events use this so they can share that same E090_001.BMD script. If it's not set, it uses the default script path based on the event IDs.
TL;DR: Just kidding, there are no embedded scripts. But there is a way of pointing to a script other than the canonical one the event would use based on its IDs.
Cool... I pushed some changes to more accurately reflect what the header/"Basics" fields mean, then. Although I still need to make sure the script editor parts pick up the right files when there's a custom path specified.
i'll test it out in a sec
sorry, got a sore throat and forgot about this. I'm testing it now
pretty sure the slashes are backwards
well for windows atleast
in any case it does seem to work. Just need to mess around with it a bit
it seems to load now but it just crashes
the slashes do seem to matter. Just wanted to confirm it.
but the text always defaults to all caps whether or not you changed it in EVTUI. Which makes sense but still wanted to confirm it.
nvm. You HAVE to make the path to be all caps or else it wont load the actual file.
but it still crashes when loaded
for both BF and BMD
So these ☝️ events should contain such paths that get used in the vanilla game.
Usually paths embedded in files (e.g., CPKs) use forward slashes and are case-insensitive afaik, so I'm interested in the specific crash scenarios here.
That is, unless none of them are actually used and the paths break even in the vanilla game 🫠
i'll check it out now. Sorry, was in the shower.
No idea honestly. It just started 'working' once I changed them.
this is E096_001 standard in EVTUI
trying it out now
looks like it loads and doesn't crash
👀
Okay, cool. So what about it breaks when you try to format the file paths in the same way?
From what I can tell once it tried loading the file it just crashed
as in the BMD or bf
How did you include the file in your mod / what were the contents?
For the BMD I tested I just copied the original 481_010 BMD and then renamed it. And for the BF I just changed the slashes and made it all caps.
i'll mess around a bit more
I see
right
So when you go to 'save' an EVT. If you're messing with a new EVT you HAVE to also save both the BMD and BF or else it wont create the files.
Oh, sure.
so now this works with the custom BMD path
I know thats what it is because I didn't do that with 481_010 and it wouldn't load.
this also apparently happens with old EVTs with this new custom path. Which makes sense but good to know.
this gives me "lets get you to bed grandpa" vibes
🧓
Lol, I meant that as in a "right, that's how it works" way.
I would like to make it clearer in the UI at some point when you're actually creating new files in your mod directory.
I knew that before hand but I just completely forgot about it. Then remembered.
I think the way I want it to work eventually is that you have to explicitly create a new modded file for each file type in order to make edits -- and when you do, you also can select the "CPK" folder name.
you could maybe have it be a checkbox selection before you open the EVT? Like you can select to have a BMD and BF be created upon loading up the EVT. So then you can just pick and choose what you need.
oh, I did not see this while typing
Does it seem like a reasonable approach?
Just trying to wrap my head around your explanation. So like how it is now in EVTUI but it's more visible that you are creating it rather than 'saving' and giving more options for what happens with them?
Yeah, my idea is that there would be more explicit marking of vanilla files vs. modded files, and you can always see the vanilla files, but if you want to edit, there will be a button that lets you create a modded file from a vanilla one of your choice.
This would also let you have multiple edits of the same file for a mod if you have multiple CPK directories that users can configure.
I see, yeah I agree with that. Would be really cool.
You'd still need to save each file explicitly, but it would be more flexible and, I hope, clearer what files you have.
Okay, cool 
Got a new branch for adding/deleting assets
It needs a little more polish before merging, but so far it seems to work without issue!
I also moved around the tab organization a bit because the nested tabs were starting to feel unnecessary. But I'm open to feedback re: what tab ordering (/ default tab to be open at the start of a session) is most intuitive.
Honestly I feel like it'd be better if the timeline tab was the thing that shows up at session start rather than the basics tab. The timeline tab will be the main thing you edit in the editor. So having it be front and center when you open up the event will make that interaction better I feel.
Also on the topic of the assets tab. Can you make it have a conformation when you try and delete an asset (do you really want to delete this?) since I can foresee accidentally deleting assets being an annoyance.
And 2 things, when adding a new asset. You can't reposition assets. So if you add a new one it just stays at the bottom. And while I do like how it takes over the number from a previously deleted asset the lack of repositioning makes it out of place.
About the nested tabs. I feel like now there are too many tabs. I'm not sure why but it feels crowded. I think at least nesting the basics tab in either the timeline or assets tab would be best. Since basics doesn't really have that many things you can change. And like I said before you really wont be editing any of the options in it that much.
My ordering would be Timeline>Assets>Audio>Scripts>Render
Other than what I've said I have no real issues. Works fine from my testing. You did a great job on this.
👀📝📝
I was especially wondering about the Timeline tab being the main one, so that's very helpful feedback!
Lol, and re: the Assets tab organization -- here's a relevant sneak preview of some of my (disorganized) mockups/notes for things I want to add to it.
Hopefully the nested nature of Delete would help prevent mistakes, but I can still add an Are You Sure? dialogue if you think that would be helpful. Could do the same for deleting commands, too....
Yeah I think that works better
since that would be a lot harder to fat finger
wdym by 'related commands'? Like for example every single MAB_ that character asset 3 is under?
if so I'm not so sure. Since that can be pretty catastrophic if fat fingered.
It would definitely need an Are You Sure? dialogue, but I'm thinking it would be a convenient shortcut in case you don't want to dig through and find all the commands for that asset manually after deleting it.
Yeah alright, I can get behind that. Also wdym by IO? I have seen it a couple times but idk specifically what it means.
In what context?
when you ask if you sort by IO by default.
(Also, I definitely think bulk operations like this are a good impetus for an undo feature, so I'm actively thinking about that.)
OH, that says ID, lol.
lol
Usually IO means Input/Output, so like file reading/writing. But that's only really in the backend code.
ahhh

