GithubHelp home page GithubHelp logo

penumbra's Introduction

Penumbra

Penumbra is a runtime mod loader for FINAL FANTASY XIV, with a bunch of other useful features baked in:

  • No need to back up your install - mods don't touch game files
  • Disable and enable mods without restarting the game
  • Resolve conflicts between mods by changing mod order
  • Files can be edited and are often replicated in-game after a map change or closing and reopening a window

Support

Either open an issue here or join us in Discord.

Contributing

Contributions are welcome, but please make an issue first before writing any code. It's possible what you want to implement is out of scope for this project, or could be reworked so that it would provide greater benefit.

TexTools Mods

Penumbra has support for most TexTools modpacks however this is provided on a best-effort basis and support is not guaranteed. Built in tooling will be added to Penumbra over time to avoid many common TexTools use cases.

Installing

While this project is still a work in progress, you can use it by adding the following URL to the custom plugin repositories list in your Dalamud settings An image-based install (and usage) guide to do this is provided by unaffiliated user Serenity: https://reniguide.info/

  1. /xlsettings -> Experimental tab
  2. Copy and paste the repo.json link below
  3. Click on the + button
  4. Click on the "Save and Close" button
  5. You will now see Penumbra listed in the Available Plugins tab in the Dalamud Plugin Installer
  6. Do not forget to actually install Penumbra from this tab.

Please do not install Penumbra manually by downloading a release zip and unpacking it into your devPlugins folder. That will require manually updating Penumbra and you will miss out on features and bug fixes as you won't get update notifications automatically. Any manually installed copies of Penumbra should be removed before switching to the custom plugin respository method, as they will conflict.

penumbra's People

Contributors

0ceal0t avatar ackwell avatar actions-user avatar aeastralis avatar azurealistic avatar caraxi avatar dormanil avatar exter-n avatar goaaats avatar haselnussbomber avatar holowise avatar initialdet avatar jacob-keller avatar lmcintyre avatar lucyawrey avatar notadam avatar ottermandias avatar pmgr avatar reiichi001 avatar rootdarkarchon avatar sebane1 avatar soreepeong avatar soyax avatar workingrobot avatar yuki-codes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

penumbra's Issues

(Net5) Error handling for missing mod folder

I'm pretty sure I don't have a mod folder anymore. Attempting to open a bad folder path blows the plugin up.

System.ComponentModel.Win32Exception (2): The system cannot find the file specified.
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)
   at Penumbra.UI.SettingsInterface.TabSettings.DrawOpenModsButton() in C:\Users\Raymond\code\Penumbra\Penumbra\UI\MenuTabs\TabSettings.cs:line 57
   at Penumbra.UI.SettingsInterface.TabSettings.Draw() in C:\Users\Raymond\code\Penumbra\Penumbra\UI\MenuTabs\TabSettings.cs:line 158
   at Penumbra.UI.SettingsInterface.SettingsMenu.Draw() in C:\Users\Raymond\code\Penumbra\Penumbra\UI\SettingsMenu.cs:line 59
   at Penumbra.UI.SettingsInterface.Draw() in C:\Users\Raymond\code\Penumbra\Penumbra\UI\SettingsInterface.cs:line 34
   at Dalamud.Interface.UiBuilder.OnDraw() in C:\Users\Raymond\code\Dalamud\Dalamud\Interface\UiBuilder.cs:line 235```

Ignore non-mod-content files in TT modpack imports

Since TexTools modpack files are basically zipfiles, a number of authors add non-mod-content files like screenshots, which seems to break Penumbra's importer. Would it be possible to disregard such files when importing?

Penumbra errors on game load

I'm creating this issue for a friend. Whenever they launch their game with Penumbra enabled, their game gets stuck on the SE logo and freezes/crashes.

Their dalamud log contains errors like these over and over again:
2021-10-13 06:09:41.923 -06:00 [ERR] [Penumbra] Could not obtain default file for manipulation chara/xls/charadb/extra_top.est: System.IO.IOException: I/O error occurred. at Penumbra.Meta.MetaManager.ApplyMod(MetaManipulation m, Mod mod) in D:\a\Penumbra\Penumbra\Penumbra\Meta\MetaManager.cs:line 159 2021-10-13 06:09:41.923 -06:00 [ERR] [Penumbra] Could not obtain Est file for Equipment Body Unknown: System.OverflowException: Arithmetic operation resulted in an overflow. at Lumina.Data.SqPackStream.ReadFile[T](Int64 offset) at Lumina.Data.SqPack.ReadFile[T](Int64 offset) at Lumina.Data.Category.GetFile[T](ParsedFilePath path) at Lumina.Data.Repository.GetFile[T](Byte cat, ParsedFilePath path) at Dalamud.Data.DataManager.GetFile[T](String path) in C:\goatsoft\companysecrets\dalamud\Data\DataManager.cs:line 121 at Penumbra.Meta.Files.MetaDefaults.CreateNewFile(String path) in D:\a\Penumbra\Penumbra\Penumbra\Meta\Files\MetaDefaults.cs:line 25 at Penumbra.Meta.Files.MetaDefaults.GetDefaultFile[T](GamePath path, String error) in D:\a\Penumbra\Penumbra\Penumbra\Meta\Files\MetaDefaults.cs:line 60

Or any variation of the error, such as:
[Penumbra] Could not obtain Eqdp file for Legs HrothgarMale:
[Penumbra] Could not obtain Eqdp file for Legs VieraFemale:
etc.

Are there any common causes for this?

I should add that this issue started suddenly today, without them adding or removing any additional mods from their game.

[Suggestion] Mod groups to enable/disable and better organization

I would like to propose mod groups as I'd like to have the option to enable and disable mods depending on what body I'd like to use for certain pictures.
It would be useful for those who like to swap mods depending on what character they are using or what kind of body they feel like having.
This will allow to organize better the mods and have a clear idea of what the user is enabling as with many mods, the conflicts or finding certain mods can turn confusing.

Modpack fails to import

This single file out of 13 skill replacement files does not import into Penumbra. Creating ticket per ingame UI ("One or more of your modpacks failed to import. Please submit a bug report."). I have Penumbra configured and working correctly with a ton of other mods. Below is the ttmp2 file, zipped.

Maim【新凶残裂fix】.zip

Mod collision handling

Currently file collisions are handled implicitly via load order, but there's no notification or tracking - it silently fails.

It shouldn't do that

  • Add callback/storage when loading a mod (parse time) so that we can properly notify the user in the UI that a conflict has been detected
  • Test that this actually works with the existing code I wrote...

TTMP2 Import does not handle symbols

If a TTMP2 is authored with a symbol in it's name, Penumbra does not correctly parse this when using the Import TexTools Modpacks button and has an incorrect file path when trying to load the intended mod.

image

image

Missing textures on certain mods.

Tail mod that works perfectly fine has missing and translucent textures when using a penumbra character collection.
Importing it into default works perfectly, however using a character collection makes textures go missing.

"Log cull threw an exception; being used by another process"

So I've been using Penumbra for a while now, and I often dual-box my two accounts at once. Since the XIV update, I've been getting this error:
anotherprocess
It doesn't seem to actually cause an issue, but I just wanted to point it out. I haven't added any mods or stress tested it, but it seems it's probably a niche issue, since most people probably don't dual-box two instances of the game at once.

With the addition of collections, mods no longer effect NPCs

This may have been intentional but mods for G'raha Tia no longer are being applied regardless of if they are being placed into the default or forced collection. I also tried to use a collection for their name but it also did not apply. Maybe we could have a system/npc collection for stuff effecting UI/NPC/Minions/Mounts?

crashes

i imported a mod pack and now anytime i load the launcher it crashes only started happening after i imported a big modpack but not sure

Tattoo Mod/TB2.5 Hair Options Applying to All Characters

Not entirely sure why this is happening but when this tattoo mod is applied to a character collection, it then will apply to all actors not just the selected character. This was not happening before the API v4 upgrade from what I can tell as I have tested all the way back to version 0.4.4.4 and it is still occurring. I wonder if this was introduced somewhere along the way in the API v4 refactor? It also took several redraw in order for it to properly apply.

ntdll.dll error with penumbra

Hello, I've been getting crashes on loading screens or when switching classes. No error pops up, so I check event viewer and get this:

https://imgur.com/a/wnyutUZ

I've tried:
Reinstalling graphics drivers
Delaying Dalamud injection

The thing that worked for me was playing without Penumbra, so I assume it might be related to fileswap mods I made.

Mods no longer enable or disable

A couple days ago I noticed mods stopped disabling. The UI would update to show the mods disabled but would not actually change what was in the "Effective Changes" tab. I left it alone and came back to it today. I've tried completely deleting Penumbra with exception to the folder containing the mods and reinstalling. After rediscovering the mods folder none of the mods will enable. The UI shows them enabling but again nothing changes under "Effective Changes". Once again I deleted and reinstalled Penumbra, this time attempting to import a single ttmp2 file. Again the UI shows the mod enabled but nothing happens under "Effective Changes".

Character Collections Don't Work in GPose

So I'm not sure how on a technical level this can be fixed but once you enter gpose as of 0.4 any character specific collections are no longer applied. I assume this is just due to the lack of player names inside of gpose. Would it ever be possible for the collection to be retained or is this just a technical limitation that can't be bypassed

Fix hooking in Dalamud so that our hooks work properly

EasyHook doesn't work due to it's flawed hook ACLs implementation, replace it with Reloaded.Hooks which doesn't suck

  • Replace EasyHook with Reloaded.Hooks
  • Fix dependency hell with discord rich presence adding an old version of system.compilerservices.unsafe

importing large ttmp file

hello, i'm trying to import my hair mod but it won't load into the menu. It seems to sit at "importing modpack" for a few minutes but nothing happens after it goes back to the "import textools modpacks" button. is there a max size? textools really doesn't like importing it either lol. the specific ttmp i'm using is here

Some mods crashes penumbra after game reboot

Hello,

I found some mods exported from textools have strange behavior with penumbra.

For the first time these mods were imported by penumbra, everything was good. No errors from penumbra and the mod was perfectly displayed in game. But if I close the game and start it again, the mod I last imported would crash penumbra (penumbra fails to load). If I delete the mod in penumbra's folder, then everything works well.

I know penumbra is not fully compatible with TT, but I just think this specific case should hopefully be able to be a compatible case, so I opened this issue, and would be grateful if someone could help look into this. I'm not sure if penumbra has logs but I'm willing to upload if you tell me how to get the logs.

Selective File Import like textools? Right Click Delete Specific Mod Files?

So textools offers the ability in some cases to be selective about what files from the mod you want to import. Ie. Scale mods
Lets say I want to install a Black/White Scale Mod but only want to import the black scale files and not the vanilla ones; Well with Penumbra you can only import whole mods with no easy ability to remove the files you don't want imported. I was thinking that If textools has the redirect imports to Lumina option checked and its opened via textools then it wouldn't require shutdown of the client, along with inside the Launcher where you 'manage mods' include like a right click ability to delete specific files within a mod listing rather then only being able to delete the mod as a whole?

Metadata Manipulating Mods Aren't Applied Outside of Default Collection

I was doing some testing on the collections with metadata manipulating mods and I noticed something odd. For this example I was using the Dragon Within (requires The Body 2.5) as well as the Dragon Within No. 2 Type B Leggings. I did some testing and the results are listed below. Note that in all tests The Body 2.5 (Type 2) is set to priority 0, Dragon Within (Base and Type 2) priority 1, and No. 2 Leggings DW Version priority 2.

Example 1: Default Collection

Mod Names Default Collection Forced Collection
The Body 2.5 (Type 2)
Dragon Within (Base and Type 2)
No. 2 Leggings DW Version

In this case where this is are collections for characters (as is the character name is not in the list of collections), everything is working as intended. Only thing of note is the body mod loads in without any body hair

Example 2: Forced Collection Only

Mod Names Default Collection Forced Collection
The Body 2.5 (Type 2)
Dragon Within (Base and Type 2)
No. 2 Leggings DW Version

In this case where this is no collections for characters (as is the character name is not in the list of collections) but the mod is instead installed into the forced collection, the following is observed:

  • The Body 2.5 mod loads without body hair
  • The Dragon Within mod itself does not appear under any circumstances
  • The No. 2 Leggings DW Version does not load in and the vanilla model is shown

Example 3: Character Collection

Mod Names Default Collection Forced Collection Character Collection
The Body 2.5 (Type 2)
Dragon Within (Base and Type 2)
No. 2 Leggings DW Version

This environment preforms identically to example 2 even when you place The Body 2.5 into the character collection alongside the other mods.

Example 4: TexTools Installation

When I installed everything via TexTools in the order listed in the tables above, the mods all seems to work in the exact same fashion as example 1.

Final Remarks

In all of these tests, from what I was able to gather it appears the issue is just with the metadata not being applied outside of the default collection. The body hair not being loaded is just unique to the dragon within mod so I'm not too concerned about that. But yeah. Hopefully all this information was help.

Sorry if all this was a lot, I just wanted to test out every possible situation I could think of to narrow the issue down for ya.

So in conclusion, metadata on mods does not work outside of the default collection

Some cutscenes break with Character Collections

This is a relatively minor issue, but when using character collections on the player character, some minor cutscenes break.

Cutscenes such as waking up from the bed when logging in from an inn breaks: instead of waking up, the character will already be up besides the bed, and nothing will happen for a few seconds, before returning to normal gameplay.

I've seen another instance of this issue happening elsewhere, where the character had an idle animation instead of doing something, but I forgot where, sadly.

I'll try to see if this problem happens consistently or not next time I'll log in.

Ensure updated file integrity

When creating a Penumbra mod, there should be some sort of checksum or hash of the modded file contents in order to determine if a file has been changed by an update. For example if we get into more complex mods, such as EXD, we will want to disable those if the game changes them, or retail will crash or exhibit unexpected behavior.

On the Penumbra end, this would simply be ensuring the checksum for the mod matches the contents of the game's file. The mod creation software (Umbra?) will be responsible for creating the checksum.

Crash on net5. Maybe try fixing with VirtualProtect

Set memory permissions before trying to modify non-write code. Might solve the crash in net5.
https://github.com/xivdev/Penumbra/blob/master/Penumbra/Hooks/SoundShit.cs#L26

Here's some code from my branch to do the dirty deed.

        public static MemoryProtection ChangePermission(IntPtr memoryAddress, int length, MemoryProtection newPermissions)
        {
            var result = VirtualProtect(memoryAddress, (UIntPtr)length, newPermissions, out var oldPermissions);

            if (!result)
                throw new Exception($"Unable to change permissions at 0x{memoryAddress.ToInt64():X} of length {length} and permission {newPermissions} (result={result})");

            var last = Marshal.GetLastWin32Error();
            if (last > 0)
                throw new Exception($"Unable to change permissions at 0x{memoryAddress.ToInt64():X} of length {length} and permission {newPermissions} (error={last})");

            return oldPermissions;
        }

        public static void ChangePermission(IntPtr memoryAddress, int length, MemoryProtection newPermissions, out MemoryProtection oldPermissions)
            => oldPermissions = ChangePermission(memoryAddress, length, newPermissions);
        [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
        public static extern bool VirtualProtect(
            IntPtr lpAddress,
            UIntPtr dwSize,
            MemoryProtection flNewProtection,
            out MemoryProtection lpflOldProtect);
        [Flags]
        public enum MemoryProtection
        {
            Execute = 0x10,
            ExecuteRead = 0x20,
            ExecuteReadWrite = 0x40,
            ExecuteWriteCopy = 0x80,
            NoAccess = 0x01,
            ReadOnly = 0x02,
            ReadWrite = 0x04,
            WriteCopy = 0x08,
            TargetsInvalid = 0x40000000,
            TargetsNoUpdate = TargetsInvalid,
            Guard = 0x100,
            NoCache = 0x200,
            WriteCombine = 0x400,
        }

Fullstop in Name causes parsing and extraction issues

Just had a conversation in the XIVLauncher Plugin discord, with a user (AGPhoel) having issues importing mods. When they imported the second mod, it would "remove" the first mod.
Discord Convo: https://discord.com/channels/581875019861328007/684745859497590843/840030955812290590

Original Pictures Provided.
https://cdn.discordapp.com/attachments/684745859497590843/840032416130924564/unknown.png
https://cdn.discordapp.com/attachments/684745859497590843/840032728589402132/unknown.png

I asked for a shot of the "Files" tab
https://cdn.discordapp.com/attachments/684745859497590843/840033032936751124/unknown.png
Of note, the eventual folder name for the mod was "(v1"

I checked the original mod files - both actually had "(v1.1)" in front of their modnames.
I tried renaming the mods inside the TTMPL.mpl files (removing the version), and passed it the modified versions back to AGPhoel. They were able to import them fine after this.
https://cdn.discordapp.com/attachments/684745859497590843/840036701114990592/unknown.png

It appears that the parsing of the "Name" field, which is used for creating the folder name, stops instantly if it sees a fullstop. In this case, the mods had versions at the start, which caused them to write to the same folders.

This is a little similar to #23 (as its parsing of the "Name" field not handling things correctly).
But I felt considering this warranted its own issue report.

deledted every time

Hello, with the latest major update of Dalamud, unable to install penumbra and penumbra is removed every time.

Installed mod list UI requests

In the installed mods list, can the sidebar showing the tree of mods be widened for long names? Some mods, like gear changes, have their title but also the body mods they're designed for.

Can mod names be indented under their folder groups for better alignment? For example, in the image below, the mod names under my Minion folder are left-aligned with the arrow. However, the subfolders are indented further right, which nicely represents the heirarchy.

Would it be possible to sort subfolders above mods? Windows explorer does this by default IIRC, as an example. Folders sort alphabetically but all display above normal files.

Random crashes on loading screens

Okay, so the problem is that I'm not 100% certain that Penumbra is causing this, but I seem to be getting this since I started using Character Collections on 0.4.x.x, so I guessed that it was caused by Penumbra.

Whenever I'm about to be in a loading screen, it could be when changing zones, loading duties, or even when starting an instanced battle (right after the cutscene), the game will sometimes simply close itself. I don't get any error dialog, and I don't see any errors in the Dalamud logs.

The problem is that this happens completely at random so testing this is complicated, but it will always happen on a loading screen. Sometimes I can play for several hours without issues, and sometimes it'll happen after 15 minutes of gameplay.

If you need more info I might be able to provide, please ask away.

Redraw not working on all NPCs and PCs while in content.

While I was in the new Nier Raid The Tower at Paradigm's Breach using the command /penumbra redraw didn't redraw everyone within the scene. My character was invisible as well as other people within the raid.

The only reason I bring this up is because some people might want to disable some mods while in content and may have forgotten when outside of content.

It seems that when the redraw is done, not everyone gets loaded in, and its somewhat random or who does and doesn't.

I've tried disabling all mods, restarting game, going back into content, and doing a redraw. Same issue occurs.

API for third party code to manage mods and file replacements

Ideally other plugins can also register their own replacements if Penumbra exists, though this is likely dependant on the Dalamud rewrite where we should have a better think about how this could work, but ideally we can support the following scenarios:

  • Replace a file with a globally lower priority than any user modpacks
    • for example, this would only replace a file if a user modpack didn't replace it
  • Replace a file with a higher priority than modpacks

current plan

  • basic http api
  • retrieve mods and their files
  • create new mods
  • add files/delete files from a mod
  • manage mod priorities
  • manage conflicts
  • delete mods
  • export mods
  • add non-mod related file replacements (eg, testing file edits from an external program such as vfxeditor/umbra)

Scale mods don't play nice - caching issue?

I'm trying to set things up so that all female Au Ra use one scale mod by default, but my character collection for a specific alt uses a different one. My understanding is that this should affect only my character while leaving all other femra untouched. However, what seems to be actually happening is the following:

Body - Always the scale set used in the default collection, even for my own character
Head and tail - All femra with my character's face and/or tail type use the character collection scales, all others use default collection scales

Redrawing doesn't fix this whatsoever. In fact, redrawing has never affected scale mods in any version of Penumbra I've ever used. If I disable both these scale mods and redraw, nothing changes. (This has also been the case for the tattoo mods I've tried for my elezen, but that's less of a priority for me personally.)

default
Relevant mods in my default collection.

collection
Relevant mods in my character collection. In both collections, enabled mods are shown in descending priority.

2021-10-11_02-03-40-009_Shadowbringers Custom
Probably not relevant, but including for the sake of completeness - file conflict that only exists for Sin Eater Raen mod involves the body scales.

2021-10-11_01-41-47-636_Shadowbringers Custom
2021-10-11_01-45-12-131_Shadowbringers Custom
Examples of issue.

MetaData not reading?

Ran into an issue where mods with meta data would not work. But when those metadata options were checked via TT, they would work perfectly in game using Penumbra.

Proper user onboarding

Ideally we need to do the following on install

  • Onboarding UI that guides a user through setting up their mod directory and the gotchas that come with picking a path (path length limitations)
  • Explain mod ordering, probably use an example like the skyrim mod manager stuff
  • Conflicts and you, a 3 part story

Race-specific changes

Are there any plans to force mods to work only with certain races (and/or genders)? For example, this one mod affects the Werewolf Head item but at the same time it breaks it on every other race. The owner offers two variants, one that works in normal TexTools (and that I am currently using in Penumbra) and one that works in a patched TexTools fork "which adds a Lala specific material".

image

Minimal UI with Penumbra

If i open a window, say inventory, the window is the standard one, until i right click something opening a sub menu. The sub menu have the minimal UI texture and then the inventory window too, untill i close the sub menu and the invetory window turn back to standard texture.

Interface/API so that Umbra can request modpack reloads

Ideally Umbra can do something so that Penumbra knows that there's new files to discover. This would then let you, for example, edit and save a file to a modpack and then Penumbra is aware of the new file and will load it the next time the file is requested in game.

Alternatively, we can just listen for filesystem events for the mod directory and load from there, which would make it tool independent.

[Suggestion] Sort installed mods alphabetically or by priority

While Penumbra 0.4's alphabetical support is great for finding mods, it's difficult to get a sense of the entire mod list's order at a glance. Being able to swap between 0.4's alphabetical and 0.3.5.2's priority sort would be very useful for organization purposes.

Other players' body parts become invisible when the default collection doesn't have a mod from a character collection enabled

Hi,
I've upgraded Penumbra to version 0.4.4.5 after Dalamud's major update, and I've been having rather frequent issues of "modded models not appearing" since then.
I think the affected mod is "The Unofficial HrBody 2.5" for hrothgars (with 4K textures if that makes a difference), you can find this mod here.
The issue happens most often in the pop-up when I try some gear on. It also sometimes happens in-game with other players and myself.
ffxiv_dx11_6V6uf7fmvF

The mod structure I have is :

  • The mod is loaded on my character collection with all the bells and whistles (HD models)
  • The mod is loaded on the default collection with only the textures enabled so they are the same between me and other players/NPCs but keeps the performance hit to a minimum

Even if I try to close and re-open the try-on window, the problem re-occurs. When I saw the problem on another player, I tried redrawing the models manually with /penumbra redraw, but the issue persisted when the character reloaded. If I play around with the mod settings (such as disabling mods/collections and whatnot), it tends to fix the problem until the next loading screen.

I don't remember seeing this issue on Penumbra 0.4.2.7, so there must've been some kind of regression somewhere.

[Bug] Character Collections sometimes do not load upon teleporting

When entering new zones, character collections sometimes do not load for the player character. This seems to happen most frequently when loading into housing areas (in this particular case, The Lavender Beds). Putting on or taking off a piece of gear seems to cause the mods to load in correctly afterwards. This also seems to happen upon taking Aethernet teleports to different zones, but it does not happen when using the Aethernet to go between shards in the same zone.

In the debug log, it does appear that Penumbra tries to redraw the character, but it doesn't seem to work.

(side note, this also happened one of the times I came through the Aethernet. I've had this before with older builds of Penumbra though, so it's most likely not related to this issue)
ffxiv_dx11_VI52lUw7IF

Mod groups (in a more user friendly way than collections)

So while collections are a step in the right direction, it would be nice to have an easier and faster way to enable and disable certain groups of mods that doesn't involve having to make a ton of collections and painstakingly modify them when you swap around old mods/add new ones, etc. I've attached a quick mockup to make it easier to visualize the feature.

  • Having a checkbox in each dropdown group makes it fast and convenient to enable and disable them. Other than the checkbox on the dropdown group itself, most other stuff would remain untouched.
  • Drag and drop for adding/removing items from groups, again for convenience.
  • When you add new mods it could just put it straight into the unsorted dropdown which you could have disabled as default, the same way as it is now.

image

Hopefully something like this could be considered for a future release.

Mod load order

Mods need to have a load order associated with them so that we have recourse for handling collisions - highest order plugin gets priority over a file first

  • Make the buttons in the UI actually work
  • Use the mod list in the settings UI when calculating the candidate list - realistically we can probably just reorder the file paths and generate a new mod list with the new order and pass that through to the loader but I don't remember anything about the code I wrote

Importing Modpack twice prevents changing the mod anymore.

When importing any modpack with the same name as one already installed, Penumbra makes a new folder with a "(2)" to the end of the folder name. But this isn't the same folder listed inside of the "collection.json"

This makes it to where the mod in Penumbra's list isn't clickable. You can't delete, modify, disable/enable or do anything with this mod. The only fix for this I've seen is to go into your penumbra data folder and delete the duplicate folder with the "(2)" in it's name.

Steps to reproduce:

  1. Install any TTMP file.
  2. Install that same file again or any TTMP with the same mod name.
  3. Try and click the mod in Penumbra's list.

Sometimes installing mods twice can happen by accident, especially when you have quite a few of them.

Bug on attempting to import a minion mod pack

2021-06-09 18:55:46.640 -06:00 [INF] [Penumbra] -> C:\Users\noneofurbusns\Downloads\Wind-up Guitar.ttmp2 START
2021-06-09 18:55:46.671 -06:00 [INF] [Penumbra] -> Importing Simple V2 ModPack
2021-06-09 18:55:46.674 -06:00 [ERR] [Penumbra] Failed to import modpack at C:\Users\nonofurbusns\Downloads\Wind-up Guitar.ttmp2
System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\ffxiv\fs_mods\textools-import'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)
at Penumbra.Importer.TexToolsImport.WriteZipEntryToTempFile(Stream s) in D:\a\Penumbra\Penumbra\Penumbra\Importer\TexToolsImport.cs:line 61
at Penumbra.Importer.TexToolsImport.GetMagicSqPackDeleterStream(ZipFile file, String entryName) in D:\a\Penumbra\Penumbra\Penumbra\Importer\TexToolsImport.cs:line 96
at Penumbra.Importer.TexToolsImport.ImportSimpleV2ModPack(ZipFile extractedModPack, SimpleModPack modList) in D:\a\Penumbra\Penumbra\Penumbra\Importer\TexToolsImport.cs:line 213
at Penumbra.Importer.TexToolsImport.VerifyVersionAndImport(FileInfo modPackFile) in D:\a\Penumbra\Penumbra\Penumbra\Importer\TexToolsImport.cs:line 121
at Penumbra.UI.SettingsInterface.TabImport.<b__15_0>d.MoveNext() in D:\a\Penumbra\Penumbra\Penumbra\UI\MenuTabs\TabImport.cs:line 63

[Enhancement] "My Characters" Collection / Applying collections to retainers

Root cause of this request is I want a way to apply a collection to my retainers beyond forced/default and named collections can't do that. In general I think it's very common for people to list their own characters in specific collections and both problems could be solved in one feature.

A new built in collection "My Characters" that always targets the active player character and if possible, also applies to retainers when they are loaded in. Additionally, if possible, "My Characters" collection mods could be implicitly applied at the character select screen over Default/Forced.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.