Hi, also nice, a official upload(as previously a mirror was available)
I had plans at making a comment on your github commits but it'd be very weird at first stance, but now with Nexus it make things a bit more better
Been following the Palworld page of Nexus since then awaiting for something like PalSchema to occur, as i had notion other UE games had similar issues and required a solution for handling datatable assets at some point
I'm a modder of Ace Combat 7 Skies Unknown, which the modding scenario i'm part also had the similar concern with conflicts of modularity, mostly by datatables which the game is heavily dependant, part of the game assets are isolated in their own files, but the datatables were yet a major headache related to some values like ammo count and some types of enums that only the datatables could handle, along being hard in finding a concrete way at merging them which would be more smoother
Of course, don't worry, this isn't a "HEY COULD YOU PORT PALSCHEMA TO THIS GAME?!?" type of beggar comment, due i'd have the interest at getting my own hands dirty on making Palschema compatible with AC7(seeing you allow people to modify PalSchema's source code), but i had some questions i'd like to ask you first if possible :
1)The structure of PalSchema, at least related to the UEpseudo code it calls, would be universal? seeing that yeah, Palworld is UE5, while AC7 is UE 4.18, unsure if the difference in engines(drastic or not) could be a possible roadblock
2)If i forked PalSchema, the UE4SS on the deps would be the one with the in progress datatable code support, but with the essential to work at editing/calling datatables, right?
3)I've seeing the code at Github, and i know it features a lot of C++ containers, i'd need to dump them with UE4SS? along if i wanted to make callbacks to each type of datatable, i'd need to assemble the following assets and their structures on the files which handle the logic of PalSchema, right?
4)I know PalSchema supports blueprint editing too, one thing i'd be curious from the documentation of the blueprint part, i could make callbacks of a blueprint asset which PalSchema could override values from the json? an example being that aside of the datatable values i could call, if i wanted to like, edit the callback of a asset path, or a value from a pawn blueprint like health, i could call it on the json file and it'd have a priority over the original path/value of the uasset?
That's all for now, i may have more questions as far i experience working on the port during the few spare time i may get(when possible), also sorry in case if i turned out incovenient, as yeah, is noticeable i'm sort of a very verbose guy from time
1). So the Raw Table part of Pal Schema's codebase should be universally applicable, though currently there is some Palworld specific checks inside it, but it shouldn't affect functionality in other games. I would be down to make a universal version of PalSchema entirely since it would benefit many data table based games. As for the engine version, it shouldn't matter as long as UE4SS itself supports the game.
2). You can just use the main branch for UE4SS as long as it has TMap support in it. I've implemented the UDataTable changes from UE4SS to PalSchema itself until the DT branch is merged onto main.
3). So all of the logic that isn't tied to the RawTableLoader is mostly just convenience abstraction to make it easier for the end user, those are definitely not needed and you should be fine with just using the 'raw table' logic.
4). Blueprint support is still experimental and subject to change as I try to figure out a better way to modify blueprint logic. Currently it's just editing the properties inside a default object for the specified blueprint class. If you're just looking to edit properties then it should do the job as is, but with the current implementation, some blueprints might not have their changes applied properly depending on when those properties are read by the blueprint.
You can add me on discord (handle is same as here) if you'd like to discuss more or have any other questions!
Thank you for the answers, also interesting you'd like the idea of a universal PalSchema too, but with the information now i got a better notion if limitations could be a issue or not
About discord, i'll add you, however won't be replying for the time being seeing i'm not using it with frequence, i may have a brief time on this monday at least for a possible brief overview if necessary, keep a eye on your invites in case
The script governing the passive skill activation trigger (e.g., LotteryWeight, AddPal, Category) will break, while the data-driven parameters (e.g., Rank, EffectType, EffectValue, TargetType) will remain unaffected.
This issue has occurred before, but it was a compatibility issue with the No Building Restrictions. After the author updated the mod, the problem went away. This time, even after removing No Building Restrictions, the issue persists, so it must be an issue with your mod.
Further confirmation: I have removed all mods except for Pal Schema and Pal Analyzer, but the issue still persists. The modifications of "LotteryWeight""AddPal" don't work.
The previous issue with DT_StatusEffectFood has been confirmed as fixed in version 0.3.2.
The reply of Cetino in "This issue has occurred before, but it was a compatibility issue with the No Building Restrictions." may help.
After hours and hours of debugging, I still haven't found the direct cause for this.... so not I nor the UE4SS devs can provide a fast and easy solution, yet. But! I realized it is a matter of load order for the two mods. If you rename my mod to "zBuildingRestrictionDisabler" or, mention it in the mods.txt/.lua before, it will be loaded AFTER Palschema. Now everything seems to work w/o issues. At least for me...
Please try if that also helps you or is it just pure luck, it works for me.
Thank you for your assistance. I believe something is wrong with the loader mechanism inside UE4SS but can't tell exactly where the problem is.
So I took a deeper look and this issue seems specific to DT_PassiveSkill_Main as the data inside it is passed into something called BP_PalPassiveSkillManager which manages the "AddPal" property internally. You can see it if you search "BP_PalPassiveSkillManager_C /" in UE4SS LiveView and look for the "PalAssignableSkillMap" variable.
I'm not a big fan of this kind of design and I'll have to look into how I can apply the changes before the Data Table is loaded into that Actor since I had to make adjustments to the load logic of Pal Schema to make it function on Dedicated Servers.
I did some tests and the Datatable changes were added correctly when I iterate the DT_PassiveSkill_Main table which most likely means the changes aren't being made early enough.
Are you planning in the long time to make Palschema support the official UE4SS? I'm not really fond of the idea to use your modified version (sorry i't my own brain that tells me it's an extra step i don't want, i know i'm weird), that's what's keeping me from using Palschema since i discoverd it last month.
There is nothing different in my version of UE4SS other than just including the MemberVariableLayout.ini with the files. You should absolutely not use the official UE4SS as is without the MemberVariableLayout.ini fix or you'll run into frequent crashes depending on what mods you're using. The issue isn't Pal Schema exclusive and will affect mods other than Pal Schema.
Vortex Mod Manager also does all of this for you, at least for Steam. It's using official UE4SS while also including MemberVariableLayout.ini.
Upgraded from 0.2.1 to the new 0.3.0, but now the game just hangs on launch. Downgraded back to 0.2.1 and the game launches. Tried emptying the mods folder when troubleshooting the new version but the exe still hangs.
Not sure what's going on, probably a mod conflict with non-palschema mods possibly, but I cant remove them all at this time to check.
Also tried updating ue4ss to newest version but no difference.
I tested all three variations of Expensive Palboxes and had no issues getting them to load. Did you verify that Pal Schema and the mod you chose are correctly installed?
Maybe it something on my end but when i replace Pal Schema back to 0.2.1 it still works? this is my ue4ss log on v0.3.1 if it will help point to where I'm going wrong.
Based on your logs it seems like you're trying to run the mod on a Dedicated Server which I was not aware of. I tried the mod on my Dedicated Server and can replicate the issue. I'll look into fixing it asap.
I've uploaded version 0.3.2 on GitHub as a pre-release. I need you to confirm that the mod is applying changes properly on that version so I can upload the new version here as well. From quick testing it seems to be working now.
I'd like to thank you for finally uploading it to Nexus! I just updated all my mods requirements to be linked to this official release. Hopefully this is gonna make installation way easier for users.
Also, is there an official folder structure that mods should have from now on? Seems like Vortex identifies PalSchema mods now, so I assume it can also detect if it's supposed to install for Steam or Game Pass, or is it not a thing yet?
That's a good question, I'm honestly not sure how Vortex handles Game Pass. I can do some testing somewhere next week and I'll update this comment if I find anything.
Thank you very much for posting this and adding mod manager installation! I kept putting off downloading this because I didn't want to have to keep track of manually updating it or not depending on all the random mods I had installed for it or would install, so I kept to just mods that didn't use this. Game boots up just fine and starting a new world works after adding this to my prior non-palschema mod load order using v0.3.1.
37 comments
- Fixed auto-reload not applying to .jsonc files.
I had plans at making a comment on your github commits but it'd be very weird at first stance, but now with Nexus it make things a bit more better
Been following the Palworld page of Nexus since then awaiting for something like PalSchema to occur, as i had notion other UE games had similar issues and required a solution for handling datatable assets at some point
I'm a modder of Ace Combat 7 Skies Unknown, which the modding scenario i'm part also had the similar concern with conflicts of modularity, mostly by datatables which the game is heavily dependant, part of the game assets are isolated in their own files, but the datatables were yet a major headache related to some values like ammo count and some types of enums that only the datatables could handle, along being hard in finding a concrete way at merging them which would be more smoother
Of course, don't worry, this isn't a "HEY COULD YOU PORT PALSCHEMA TO THIS GAME?!?" type of beggar comment, due i'd have the interest at getting my own hands dirty on making Palschema compatible with AC7(seeing you allow people to modify PalSchema's source code), but i had some questions i'd like to ask you first if possible :
1)The structure of PalSchema, at least related to the UEpseudo code it calls, would be universal? seeing that yeah, Palworld is UE5, while AC7 is UE 4.18, unsure if the difference in engines(drastic or not) could be a possible roadblock
2)If i forked PalSchema, the UE4SS on the deps would be the one with the in progress datatable code support, but with the essential
to work at editing/calling datatables, right?
3)I've seeing the code at Github, and i know it features a lot of C++ containers, i'd need to dump them with UE4SS? along if i wanted to make callbacks to each type of datatable, i'd need to assemble the following assets and their structures on the files which handle the logic of PalSchema, right?
4)I know PalSchema supports blueprint editing too, one thing i'd be curious from the documentation of the blueprint part, i could make callbacks of a blueprint asset which PalSchema could override values from the json? an example being that aside of the datatable values i could call, if i wanted to like, edit the callback of a asset path, or a value from a pawn blueprint like health, i could call it on the json file and it'd have a priority over the original path/value of the uasset?
That's all for now, i may have more questions as far i experience working on the port during the few spare time i may get(when possible), also sorry in case if i turned out incovenient, as yeah, is noticeable i'm sort of a very verbose guy from time
2). You can just use the main branch for UE4SS as long as it has TMap support in it. I've implemented the UDataTable changes from UE4SS to PalSchema itself until the DT branch is merged onto main.
3). So all of the logic that isn't tied to the RawTableLoader is mostly just convenience abstraction to make it easier for the end user, those are definitely not needed and you should be fine with just using the 'raw table' logic.
4). Blueprint support is still experimental and subject to change as I try to figure out a better way to modify blueprint logic. Currently it's just editing the properties inside a default object for the specified blueprint class. If you're just looking to edit properties then it should do the job as is, but with the current implementation, some blueprints might not have their changes applied properly depending on when those properties are read by the blueprint.
You can add me on discord (handle is same as here) if you'd like to discuss more or have any other questions!
About discord, i'll add you, however won't be replying for the time being seeing i'm not using it with frequence, i may have a brief time on this monday at least for a possible brief overview if necessary, keep a eye on your invites in case
{
"DT_PassiveSkill_Main": {
"CoolTimeReduction_Up_3": {
"Rank": 4,
"LotteryWeight": 5000,
"OverrideDescMsgID": "PASSIVE_CoolTimeReduction_Up_3_DESC",
"TargetElementType": "EPalElementType::None",
"EffectType1": "EPalPassiveSkillEffectType::ActiveSkillCoolTime_Decrease",
"EffectValue1": 45.0,
"TargetType1": "EPalPassiveSkillEffectTargetType::ToSelf",
"EffectType2": "EPalPassiveSkillEffectType::ShotAttack",
"EffectValue2": 10.0,
"TargetType2": "EPalPassiveSkillEffectTargetType::ToSelf",
"EffectType3": "EPalPassiveSkillEffectType::Defense",
"EffectValue3": 10.0,
"TargetType3": "EPalPassiveSkillEffectTargetType::ToSelf",
"InvokeAlways": true,
"AddPal": true,
"Category": "EPalPassiveCategory::SortDisplayable"
}
}
}
The script governing the passive skill activation trigger (e.g., LotteryWeight, AddPal, Category) will break, while the data-driven parameters (e.g., Rank, EffectType, EffectValue, TargetType) will remain unaffected.
This issue has occurred before, but it was a compatibility issue with the No Building Restrictions.
After the author updated the mod, the problem went away.
This time, even after removing No Building Restrictions, the issue persists, so it must be an issue with your mod.
The modifications of "LotteryWeight""AddPal" don't work.
The previous issue with DT_StatusEffectFood has been confirmed as fixed in version 0.3.2.
I'm not a big fan of this kind of design and I'll have to look into how I can apply the changes before the Data Table is loaded into that Actor since I had to make adjustments to the load logic of Pal Schema to make it function on Dedicated Servers.
I did some tests and the Datatable changes were added correctly when I iterate the DT_PassiveSkill_Main table which most likely means the changes aren't being made early enough.
2、New SLATE boss cannot be summoned from the server
There is nothing different in my version of UE4SS other than just including the MemberVariableLayout.ini with the files. You should absolutely not use the official UE4SS as is without the MemberVariableLayout.ini fix or you'll run into frequent crashes depending on what mods you're using. The issue isn't Pal Schema exclusive and will affect mods other than Pal Schema.
Vortex Mod Manager also does all of this for you, at least for Steam. It's using official UE4SS while also including MemberVariableLayout.ini.
Not sure what's going on, probably a mod conflict with non-palschema mods possibly, but I cant remove them all at this time to check.
Also tried updating ue4ss to newest version but no difference.
EDIT: Using 0.3.1 did fix it, thank you!
[PalSchema] [error] Failed to find signature for UPalDynamicItemWorldSubsystem::Create_ServerInternal.
https://www.nexusmods.com/palworld/mods/708?tab=description
https://pastes.io/ps-65886-6
i chose the BossPalbox version of the mod.
Release 0.3.2 · Okaetsu/PalSchema
Also, is there an official folder structure that mods should have from now on? Seems like Vortex identifies PalSchema mods now, so I assume it can also detect if it's supposed to install for Steam or Game Pass, or is it not a thing yet?