Jump to content

Libidinous Loader - RJW mod loader and providers list (100+ mods supported)


Recommended Posts

Posted

image.png?ex=66ae666d&is=66ad14ed&hm=2581aff1d6a2aa3d72892437ed09e4e25cc34683063e46508227b219931e171d&=

1 hour ago, AblativeAbsolute said:

 

Sorry to hear that. I assume you are on Windows?

 

Could you start Powershell / cmd session and run the executable (type the filename and press Enter).

It should output more information about what is happening.

I managed to got the error shown when I execute the file 

Posted
8 minutes ago, winstonlin01 said:

image.png?ex=66ae666d&is=66ad14ed&hm=2581aff1d6a2aa3d72892437ed09e4e25cc34683063e46508227b219931e171d&=

I managed to got the error shown when I execute the file 

 

I released a new version which outputs more information about this font issue.

Could you re-download (replace the exe and run it again)? Or is this the new exe already?

Posted
53 minutes ago, AblativeAbsolute said:

 

Hm, interesting. The first line is normal at first start, it just creates a state file if it doesn't exist.

 

The real error happens when my application cannot find a font file to load.

Which doesn't make much sense because it is packaged in the executable...

 

I have pushed a new version which now logs the resource path.

Could you re-download the executable and run it again with powershell/cmd?

WARNING:__main__:Unable to load state file. [Errno 2] No such file or directory: 'D:\\libidinous_loader\\state.json'
Exception: Error: [1000] Message:       Font file could not be found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "__init__.py", line 272, in <module>
  File "dearpygui\dearpygui.py", line 4341, in add_font
SystemError: <built-in function add_font> returned a result with an exception set
[26368] Failed to execute script '__init__' due to unhandled exception!


This is what i get after I run the new file with cmd

Posted (edited)
22 minutes ago, winstonlin01 said:

WARNING:__main__:Unable to load state file. [Errno 2] No such file or directory: 'D:\\libidinous_loader\\state.json'
Exception: Error: [1000] Message:       Font file could not be found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "__init__.py", line 272, in <module>
  File "dearpygui\dearpygui.py", line 4341, in add_font
SystemError: <built-in function add_font> returned a result with an exception set
[26368] Failed to execute script '__init__' due to unhandled exception!


This is what i get after I run the new file with cmd

 

Hm, that is strange. The new version should output a line starting with INFO:__main__:Using resource path followed by the path it uses...

And the error line should be 273 now. Did you run the old executable by accident? Or maybe you just were faster than my upload ;)

 

Sorry for making you run these tests, but you are experiencing a very strange error which I cannot reproduce on my Windows VMs.

Edited by AblativeAbsolute
Posted
1 hour ago, AblativeAbsolute said:

 

Hm, interesting. The first line is normal at first start, it just creates a state file if it doesn't exist.

 

The real error happens when my application cannot find a font file to load.

Which doesn't make much sense because it is packaged in the executable...

 

I have pushed a new version which now logs the resource path.

Could you re-download the executable and run it again with powershell/cmd?

Execuse me ,where did you put the new executeable in lovers lab or github 

Posted (edited)
12 minutes ago, winstonlin01 said:

May I ask how to run executeable with cmd, I am not sure my method is right

 

Open the file explorer and navigate to where the executable is

Shift + Right Click in the folder

Click the option which says something like "Open command window here"/"Command Prompt"/Powershell something

When the black terminal appears, type the file name "libidinous_loader.exe"

Wait for the glorious carnage!

Edited by AblativeAbsolute
Posted (edited)
33 minutes ago, winstonlin01 said:

That is weird... I used the link you give me ,and I downloaded the new file ,I still get the same error message

 

Ok, I have tested it on Windows 10 and 11 now and I cannot reproduce this issue.

My best guess as to what is happening is:

 

a) The executable doesn't have access to the resource path for some reason (I find that unlikely)

b) Some other program like an antivirus or cleaner deletes the files in the resource path as soon as they are created. (That one seems more probable)

 

It certainly feels like an oddball case. Maybe I will look into a fail-safe for this in the future, but right now this is out of scope for this application.

 

If you are running an antivirus, you can check if some files in Temp dirs like "C:\Users\<user>\AppData\Local\Temp\_MEI..." get deleted (maybe you can whitelist it)

or try to temporarily disable any cleaner (CCleaner or similar?) program which might be running in the background and see if it works.

Also, maybe Windows is messing with the files for some reason: link

 

Sorry that I cannot help you much further than this. :/

Edited by AblativeAbsolute
Posted (edited)
10 minutes ago, AblativeAbsolute said:

 

Ok, I have tested it on Windows 10 and 11 now and I cannot reproduce this issue.

My best guess as to what is happening is:

 

a) The executable doesn't have access to the resource path for some reason (I find that unlikely)

b) Some other program like an antivirus or cleaner deletes the files in the resource path as soon as they are created. (That one seems more probable)

 

It certainly feels like an oddball case. Maybe I will look into a fail-safe for this in the future, but right now this is out of scope for this application.

 

If you are running an antivirus, you can check if some files in Temp dirs like "C:\Users\<user>\AppData\Local\Temp\_MEI..." get deleted (maybe you can whitelist it)

or try to temporarily disable any cleaner (CCleaner or similar?) program which might be running in the background and see if it works.

Also, maybe Windows is messing with the files for some reason: link

 

Sorry that I cannot help you much further than this. :/

Thank you for helping me !!!

Edited by winstonlin01
Posted

the linux executable on LL errors when run
 

Spoiler

Traceback (most recent call last):
  File "__init__.py", line 1, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "dearpygui/dearpygui.py", line 22, in <module>
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /tmp/_MEIa0m3Zv/libstdc++.so.6)
[662937] Failed to execute script '__init__' due to unhandled exception!

 

was able to build a functioning app from the git gud

Posted
8 hours ago, wtfomgbbq said:

the linux executable on LL errors when run
 

  Hide contents

Traceback (most recent call last):
  File "__init__.py", line 1, in <module>
  File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module
  File "dearpygui/dearpygui.py", line 22, in <module>
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /tmp/_MEIa0m3Zv/libstdc++.so.6)
[662937] Failed to execute script '__init__' due to unhandled exception!

 

was able to build a functioning app from the git gud

 

This is probably due to the Linux executable being compiled in a python container image, which is based on bookworm (python:3.12)

Maybe I will just start to statically link the required libraries...

What distro are you on?

  • AblativeAbsolute changed the title to Libidinous Loader - RJW mod loader and providers list (80+ mods supported)
  • 2 weeks later...
Posted

looks really good. but i think there is a tiny mistake. i think everything runs in a single thread because when it is downloading a big file it gets stucked. maybe adding threading so the ui runs in a different thread? i don't know how hard it would be though. for the rest looks very good!

Posted
50 minutes ago, yareyaredazeuwu said:

looks really good. but i think there is a tiny mistake. i think everything runs in a single thread because when it is downloading a big file it gets stucked. maybe adding threading so the ui runs in a different thread? i don't know how hard it would be though. for the rest looks very good!

 

This should already be the case. Parallel downloads have been added recently and they are run in a threadpool.

And both the UI and manager of the threadpool are all in separate threads.

 

What exactly do you mean by 'gets stuck'?

If the UI is still responsive (e.g. hover over a button and it changes colour, etc.), this is intended (everything gets locked until the download is complete/cancelled)

If the entire application becomes unresponsive, please make sure to re-download the exe, try it out again and provide me the last.log. Thanks :)

  • AblativeAbsolute changed the title to Libidinous Loader - RJW mod loader and providers list (90+ mods supported)
Posted
On 8/8/2024 at 10:41 AM, AblativeAbsolute said:

 

This is probably due to the Linux executable being compiled in a python container image, which is based on bookworm (python:3.12)

Maybe I will just start to statically link the required libraries...

What distro are you on?

Linux Mint 21.3

 

Posted

@AblativeAbsolute Can't download the executable. Whether it is Firefox or Chrome, the file is deleted the moment it is downloaded. Could be Windows Defender but it hasn't said anything about it.  I think the browsers themselves are deleting the file. I understand that a lot of python stuff gets flagged like you mentioned but is there no way to bundle the exe so that browsers don't immediately flip a brick when they download it?

Posted
On 8/19/2024 at 12:52 PM, wtfomgbbq said:

Linux Mint 21.3

 

 

Yes, it is a glibc version issue then. I've looked into statically linking the necessary libraries, but dearpygui (the gui library i use) has some quirks (RPATH attribute) that make this difficult. I would have to compile it from source in the CI or figure out how to properly patch the ELF (binary file provided by upstream dearpygui). There is not proper solution as of yet. :/

But I am glad to see you managed to compile it yourself. I hope to make this even easier in the future.

Thanks for your feedback.

 

On 8/19/2024 at 3:00 PM, Demonwise said:

@AblativeAbsolute Can't download the executable. Whether it is Firefox or Chrome, the file is deleted the moment it is downloaded. Could be Windows Defender but it hasn't said anything about it.  I think the browsers themselves are deleting the file. I understand that a lot of python stuff gets flagged like you mentioned but is there no way to bundle the exe so that browsers don't immediately flip a brick when they download it?

 

I do test the Windows executables from time to time on 2 VMs I have lying around, as well as VirusTotal. I couldn't reproduce that problem sadly.

As to your question, I have tinkered with various obfuscation techniques and used things like UPX, but most methods just make it even more likely to trigger some antivirus.

Additionally, even if I found the magic solution against these false positives, they could be rendered irrelevant in a couple of weeks or months.

 

It is unfortunately a burden all Python applications face on Windows due to overzealous banning :(

 

All in all, I empathize greatly with the frustration, but I am not willing to pour more of my time into these frivolous "protections" as I already have.

 

As to the browsers possibly freaking out, this might be due to downloading an unsigned EXE?

The browsers should definitely give you feedback about a virus detection, but if you run into this problem with other stuff as well, here are some ways to circumvent them:

Firefox: https://kb.mozillazine.org/Unable_to_save_or_download_files#Disable_virus_scanning_in_Firefox_preferences_-_Windows

Chrome: https://support.google.com/chrome/answer/99020

 

Thanks for your feedback!

Posted (edited)

Can you make to it warn when a new version is released? You can like to give it a version and make it verify the version number and say to update. You can use github to do it, so it will try to check for version, if number is above it will say to update.

 

Also what are those errors it show?

INFO:MainThread:__main__:<module>:platform info: Windows-10-10.0.19044-SP0
INFO:MainThread:__main__:<module>:uname: uname_result(system='Windows', node='DESKTOP-431DSTB', release='10', version='10.0.19044', machine='AMD64')
INFO:MainThread:__main__:<module>:cwd: C:\Users\Lucas Gauer\Desktop
INFO:MainThread:__main__:<module>:resource path: C:\Users\LUCASG~1\AppData\Local\Temp\_MEI106042
INFO:MainThread:__main__:<module>:script path: C:\Users\Lucas Gauer\Desktop
INFO:MainThread:__main__:<module>:commit id: ae633d9d0ad2b23bbbc130ef270196f7f230ee16
INFO:MainThread:state:state_load:Loading last state from C:\Users\Lucas Gauer\Desktop\state.json
INFO:MainThread:__main__:<module>:MOD_FOLDER='E:\\RimWorld\\Mods'
INFO:MainThread:__main__:<module>:LAST_XPOS=0
INFO:MainThread:__main__:<module>:LAST_YPOS=0
INFO:MainThread:__main__:<module>:DEFAULT_UPDATE_WORKERS=4
INFO:MainThread:__main__:<module>:PROVIDERS_REPO_URL='https://gitgud.io/AblativeAbsolute/libidinous_loader_providers.git'
INFO:Dummy-1:git_wrapper:git_get_remote_url:Retrieving remote name from C:\Users\Lucas Gauer\Desktop\providers
INFO:Dummy-1:git_wrapper:git_repo_clone_or_pull:Found already existing git repository at C:\Users\Lucas Gauer\Desktop\providers. Pulling newest version
INFO:Dummy-1:git_wrapper:git_cmd:['C:\\Program Files\\Git\\cmd\\git.EXE', '-C', 'C:\\Users\\Lucas Gauer\\Desktop\\providers', 'fetch', '--all']
INFO:Dummy-1:git_wrapper:git_cmd:['C:\\Program Files\\Git\\cmd\\git.EXE', '-C', 'C:\\Users\\Lucas Gauer\\Desktop\\providers', 'reset', '--hard', 'HEAD']
INFO:Dummy-1:git_wrapper:git_cmd:['C:\\Program Files\\Git\\cmd\\git.EXE', '-C', 'C:\\Users\\Lucas Gauer\\Desktop\\providers', 'pull', '-f', '--no-all']
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> main

ERROR:Dummy-1:git_wrapper:git_repo_pull:Command '['C:\\Program Files\\Git\\cmd\\git.EXE', '-C', 'C:\\Users\\Lucas Gauer\\Desktop\\providers', 'pull', '-f', '--no-all']' returned non-zero exit status 1.
WARNING:Dummy-1:git_wrapper:git_repo_clone_or_pull:Switching from current branch main to v0 in C:\Users\Lucas Gauer\Desktop\providers
ERROR:Dummy-1:git_wrapper:git_repo_clone_or_pull:Failed to pull C:\Users\Lucas Gauer\Desktop\providers. b'v0'
ERROR:Dummy-1:providers:get_providers:Failed to retrieve providers file from https://gitgud.io/AblativeAbsolute/libidinous_loader_providers.git with [WinError 5] Acesso negado: 'C:\\Users\\Lucas Gauer\\Desktop\\providers\\.git\\objects\\04\\eaa4236990bf4a063299dfd4660a351bfd0a32'
INFO:Dummy-1:git_wrapper:git_get_remote_url:Retrieving remote name from C:\Users\Lucas Gauer\Desktop\providers
WARNING:Dummy-1:git_wrapper:git_repo_clone_or_pull:Removing invalid directory at C:\Users\Lucas Gauer\Desktop\providers
ERROR:Dummy-1:providers:get_providers:Failed to retrieve providers file from https://gitgud.io/AblativeAbsolute/libidinous_loader_providers.git with [WinError 5] Acesso negado: 'C:\\Users\\Lucas Gauer\\Desktop\\providers\\.git\\objects\\04\\eaa4236990bf4a063299dfd4660a351bfd0a32'

 

Edited by bruhlovar69
  • 2 weeks later...
Posted

You can now add your own mods or change existing ones!

 

Newest version adds experimental support for user defined providers.

 

Notes:

  • User defined providers with the same name as "official" providers will override them
  • You can use the combo box next to the name field to fill in the name and URL of another existing item
  • Improved tooltips will display how you configured your mods
  • Improved provider lookup
  • URLs must be WHATWG compliant
  • Names must only contain lowercase ASCII, digits, _, -
  • Branch and Subdir are optional values
Posted
1 hour ago, somebody4325 said:

FYI, you can do git clone --depth 1 to only download the most recent commit, not the entire history. (will drastically speed up downloads!)

 

Unfortunately, I allow people to specify a string which is passed to git checkout. Either a branch name or commit id, which with a reduced depth might not have been fetched.

  • 2 weeks later...
Posted

heyyy, can you add rjw mech lover fork to the loader?

for the life of me i can't figure out what to do with the providers, not even completely sure if i'm right about what they do, proposing global changes? or only locally?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...