isskini

Newbie
Mar 8, 2021
95
372
Just above I posted asking if there was a way to see what addons had a dependency on a selected var file. The issue was that if I removed something I didn't want to break something else. Since there didn't seem to be a way to do it I created one.

Dependency Viewer is a C# program that queries all the var files in a specified AddonPackages directory recursively and attempts to determine who depends on a selected var file. Once this is done the user can select a var file in the UI and can see which other vars have it as a dependency. I use the word "attempt" here because more than a few vars come out with broken meta.json files and while I have attempted to catch all the errors this can cause you may find you have issues.

There is help available in the form of text/html document and an image indicating the steps you need to follow to scan a directory. I will try to help where I can but I've got limited time to spend on this, I wrote it for myself and decided to share. The application produces a log which it overwrites on each run if you want to try to track down problematic vars.

The full source is provided so you can compile it yourself (C# VS2017) or scan it for viruses if you so wish. The only external libraries it uses are Newtonsoft JSON and NLog.

Limitations
  • I don't attempt to resolve ".latest" dependencies into the actual version number you have installed. In fact this program doesn't care if you have a dependency installed or not. It just uses the metadata in the var files.
  • I don't check dependencies of dependencies. Realistically if you have it installed I should pick it up when I scan the dependent var file. Maybe sometime in the future.
  • This may be slow if you have a lot of addons. My AddonPackages directory is 50GB and it takes about 5 seconds.
  • Plenty of other limitations I'm sure, this has only been tested against my install, my day job is not as a programmer, C# is not a language I'm strong with and this was written over a two day period.

So yeah, knock yourself out if you think you can get some use out of it.

 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
isskini
Dependency Walker for VAM awesome work
I think .var is overall pretty much frozen for now i think it makes sense to work it continuously out now, there shouldn't be to heavy surprises with VAM 2.0 i hope :)

This already is super helpful

- Broken var files and broken meta.json files will break the app in a variety of interesting ways. I attempt to catch these and log them when I read the meta.json but there is a lot of room for var authors to mess this up.
i also thought about this seeing all the erorr messages by the official parser lately getting so heavy

Lets see which problems it catches that the official parser does :)

Currently testing against a dataset of 73,6 GB (79.062.065.152 Bytes) with some non standard corruptions on USB3 (ASmedia)

20:27:56.9823 |Starting directory scan of: M:\VAM\AddonPackages
20:27:57.8933 |Generating Dependency List
20:27:58.4674 |Generating Dependency List View

ok starts to become interesting already it shows only round about 250 (42 per page) entries out of 1863 physical existing .var files in the current dataset

Spacedog_Import_Reloaded_Lite.latest <- is the top used dependency here in the dataset according to your scan (39 dependant)
 
Last edited:

isskini

Newbie
Mar 8, 2021
95
372
isskini

ok starts to become interesting already it shows only round about 250 (42 per page) entries out of 1863 physical existing .var files in the current dataset

Spacedog_Import_Reloaded_Lite.latest <- is the top used dependency here in the dataset according to your scan (39 dependant)
Thanks, It sounds like I've got a lot more work to do on validation. I'll look at adding a page of metrics and maybe a way to view the data generated by the initial scan. There could be files missing from the list simply because nothing depends on them, but 250 vs 1863 is probably too large a margin for error.
 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
Let me see i guess |Found meta.json. Reading... is a file got parsed and found correctly hit ?
so easiest would be parsing for (Reading...) as a physical hit ?

197 matches for .meta.json
197 matches for Reading...



20:27:57.8743|INFO|DependancyViewer.frmMain|Found: M:\VAM\AddonPackages\Captain Varghoss.Tara.2.var
20:27:57.8743|INFO|DependancyViewer.frmMain|Found meta.json. Reading...
20:27:57.8743|INFO|DependancyViewer.frmMain|Attemping to parse metadata as JObject
20:27:57.8743|INFO|DependancyViewer.frmMain|Creating Varfile Class Instance forCaptain Varghoss.Tara.2.var
20:27:57.8743|INFO|DependancyViewer.frmMain|Found: M:\VAM\AddonPackages\Cgomes.1_scene_thamara.1.var
20:27:57.8933|INFO|DependancyViewer.frmMain|Generating Dependency List

hmm it seems to just stop here Cgomes.1_scene_thamara.1.var

it's also not checking the dependencies later of it anymore so it seems to have simply stopped the parsing of the other files after it

20:27:58.4514|INFO|DependancyViewer.frmMain|Checking deps forCaptain Varghoss.Tara.2
20:27:58.4514|INFO|DependancyViewer.frmMain|Key for MeshedVR.3PointLightSetup.latest already exists, adding to existing dependency List
20:27:58.4514|INFO|DependancyViewer.frmMain|Key for Hunting-Succubus.Enhanced_Eyes.latest already exists, adding to existing dependency List
20:27:58.4514|INFO|DependancyViewer.frmMain|Key for NoStage3.Hair_Short_Pixie.latest already exists, adding to existing dependency List
20:27:58.4514|INFO|DependancyViewer.frmMain|Key for VaMChan.Hair_Lightning.latest does not exist, creating and adding to existing dependency List
20:27:58.4674|INFO|DependancyViewer.frmMain|Generating Dependency List View
 
Last edited:

isskini

Newbie
Mar 8, 2021
95
372
Let me see i guess |Found meta.json. Reading... is a file got parsed and found correctly hit ?

197 matches for .meta.json
197 matches for Reading...

hmm it seems to just stop here Cgomes.1_scene_thamara.1.var
I wonder if there is something up with Cgomes.1_scene_thamara.1.var it's odd that it finds it but can't seem to open it as a zip, or it can't find a valid meta.json inside. I'll have to add something to handle that or at least log it.

As far as the app goes it thinks a valid var file has a .var extension and a meta.json file at the root. There is logic to catch and log a missing dependencies block or a general failure in parsing the json.

"Found: <Filename>" means the file was located and successfully identified as a var file (it must have a .var extension).
"Found meta.json. Reading." Means that the var was opened as a zip and has an accessible meta.json file inside it.

The next log line should be "Attemping to parse metadata as JObject" which means it's opened the meta.json as a Streamreader and is going to attempt to parse the json.
 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
isskini
lets do a to be checked folder wherever your parser has problems with and see what happens if we take it out ;)

congrats that was most probably a download failed corrupted file detection :D

28,7 KB (29.389 Bytes)

Your parser shouldn't have crashed tough and continue trough the rest marking this as (probably corrupted) ;)

though interesting to see what the official parser does with this case in a separated test

lets continue... :)

456 matches we getting there ;)

so lets see if we have another corrupted download here :)

i keep the useless data away now

this is now the possible problem at least for your parser :)

20:42:55.6965|INFO|DependancyViewer.frmMain|Found: M:\VAM\AddonPackages\FlamingFire.[look]Elvira.1.var

35,3 MB (37.114.578 Bytes)

from the filesize itself you wouldn't guess it could be a corrupted download and maybe this time it isn't
 
Last edited:

isskini

Newbie
Mar 8, 2021
95
372
20:42:55.6965|INFO|DependancyViewer.frmMain|Found: M:\VAM\AddonPackages\FlamingFire.[look]Elvira.1.var

35,3 MB (37.114.578 Bytes)

from the filesize itself you wouldn't guess it could be corrupted :)
Fair enough, I guess we need a try/catch on the streamreader.
 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
1249
21:07:59.4373|INFO|DependancyViewer.frmMain|Found: M:\VAM\AddonPackages\VariousScientists.ExplosionLady.latest.var

there seems to be a interesting pattern if downloads failed in the hub interface over chrome ;)

28,7 KB (29.390 Bytes)

though it's still not easy to id this with filesize it's possible that scripts or just preset var files could be in that range

so we are now at

1618 :)
1822
1857 done :) (problems quarantined mostly broken (queued) hub downloads that failed so full structure wrong it seems)

1863 scanned (6 found to be problematic and causing the parsing to finish correctly)

So lets take a look at the Final Performance results of 1857 Files 78.994.285.086 Bytes .var scanned and 1st level dependencies analyzed from External USB3 HDD :)

21:46:40.8834 | Starting directory scan of: M:\VAM\AddonPackages
21:46:49.7329 | Generating Dependency List
21:46:57.2193 | Generating Dependency List View

RAW Parsing Time = 8.8495 seconds
Generating Dependency List/View = 7.4864 seconds
Total Runtime = 16.3359 seconds

Lets check if this fixed some of the Parsing errors of VAMs Internal parser :)

no extreme errors anymore except 1 <Truncated> else only the normal missing dependencies or wrong meta.json data format

Lets take a look at those 6 files

5 = corrupted hub queue failed internal chrome downloads (easy id able totally broken)
1 = uknown yet can be opened (file structure seems intact)

i gonna test this 1 file again

it's this one


it doesn't look corrupted on the first view in any way thus while i gonna retest first to make sure the parser really crashes on it
 
Last edited:

isskini

Newbie
Mar 8, 2021
95
372


it doesn't look corrupted on the first view in any way thus while i gonna retest first to make sure the parser really crashes on it
This fails for me too. There is some odd about that var file, trips the exception handler with "End of Central Directory record could not be found."

EDIT: I figured out why, that's a RAR file, not a ZIP file. Are RAR files valid in Virt-a-mate or is it just zip?

EDIT2: Looks like they're aware of it on the hub. I just need to figure out how to log the exception and continue.
 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
Here one of the corrupted downloads just rename .var.zip back
you can also see what it actually is a .html response for the hub no idea why he downloaded this as the package maybe he took it off or in private when it was in the queue or he got deleted ;)

I think it was a dependency for someone else but it isn't reachable without login so the hub browser catched the login page

so yeah it can happen so better watch out for disguised .htm(l) ;)
 
Last edited:

Heatwave

Active Member
Jul 6, 2019
742
1,645
Guys, how can I get rid of ugly clothing clipping when the character walks? Is there at least a way to reduce it?
 

Krosos

Engaged Member
Dec 1, 2018
2,169
2,089
yes Physics setup but getting it perfect pretty impossible, especially when you combine so many different creators work you have to adapt each to a given setup of things, you have to know how he tests his creations with which specific VAM setup then you can do different things to fake the almost perfect illusion but it will brake somewhere it is due to the complexity unavoidable and to get it near to work amazingly you test yourself dead.
And this even doesn't count the shear unpredictability of the current physics where anytime something can go wrong if your system just has a minimal timing glitch second for example the GC sets in.
Also the overall cloth is per see in physics mode a very thin object it's so often missing collision the faster the simulation speed.

Test the Hardcore situation Dancing with complex cloth Simulation at really fast speed ;)

So you see 1 Key is SPEED and ColiderEditor and really good timing but the other side has to run the exact same setup or he wont see what you see ;)
 
Last edited:

isskini

Newbie
Mar 8, 2021
95
372
I've released an update for my Dependency Viewer (v1.1)

As mentioned before this app will attempt to determine if any var files depend on a var file that the user selects. This is intended to allow a user to check to see if a var is depended on by other files prior to removing it.
  • Better support ignoring VAR files with issues without stopping processing.
  • Added a some metrics, including number of failed files and failed file names.
  • Fixed a bug where vars in the root directory were not scanned.
  • Added a page where the user can browse their installed vars and see their dependencies outside of VaM.
  • Fixed a bunch of spelling errors.
As usual source code is included, feel free to build yourself, scan for viruses or do whatever.

1618198013577.png

Just hold off for a bit, I've found a bug.

All good now.

Get it here:
 
Last edited:

OmmaDon126

Newbie
Dec 18, 2018
18
6
Guys, and how to animate fingers without using morphs, is it possible to control the bones of the fingers, to more accurately adjust their position. And another question, during the animation, is it possible to move an object to another one without selecting it on the stage, but for example using a list. Thank you in advance!
 

PlayRich76

Member
Oct 9, 2019
148
42
dumb question maybe but how do i get the pov possess camera to angle down past the maximum?

in a pov missioanry situation i can't keep aiming down beyond the axis limit without turning around which is disorienting
 

FartingRainbows

Active Member
Oct 14, 2019
628
747
After reading all the hassles potential players are getting in the last 2 pages of this thread, I think it's best I give this a miss. I've had this game bookmarked for many months hoping it'll get better - instead it's gotten worse :c and now at 13+GB and has to be DL in 4 parts!? .. It's another Willy D.
 
  • Haha
Reactions: sagemaster

JimmyAjja

Member
Dec 1, 2017
151
37
sry for bad eng.
Why are the scenes I set up not working completely? (does not load characters and clothes) what am I doing wrong? Please, help
 

PlayRich76

Member
Oct 9, 2019
148
42
sry for bad eng.
Why are the scenes I set up not working completely? (does not load characters and clothes) what am I doing wrong? Please, help
if clothes and characters are missing then you are missing dependencie vars

look at where you downloaded it

see what it needs to work

download and install those thingss
 
4.70 star(s) 17 Votes