We have a Steam curator now. You should be following it. https://store.steampowered.com/curator/44994899-RPGHQ/

Need help changing Palworld Data tables using Fmodel.

Game development hub. Projects, modding, and resources.

Moderator: Mod Janitor

Ignore Topic
User avatar
ImpCityAngel
Posts: 137
Joined: Jan 1, '26

Geolocation

Need help changing Palworld Data tables using Fmodel.

Post by ImpCityAngel »

I am currently using Fmodel to try and alter the text in Palworld's character creation. However, there is one problem; Much like Monster Hunter Rise, the body type options "Type 1" and "Type 2" appear to exist on a numerical grid, as depicted in this code.

"CHARACTER_CREATION_BODY_TYPE_BUTTON_TITLE": {
"TextData": {
"Namespace": "DT_UI_Common_Text_Common",
"Key": "CHARACTER_CREATION_BODY_TYPE_BUTTON_TITLE_TextData",
"SourceString": "Type {TypeNumber}",
"LocalizedString": "Type {TypeNumber}"

Based on the information gathered, I have reason to believe that these numbers exist on a data table, which contains information dictating what should be placed within the {TypeNumber} box. I would like some assistance in finding the data table concerning this code, so that I may change Type 1 into "Female" and Type 2 into "Male", keeping both boxes unique without changing anything else that might exist on the same numerical grid, assuming that other character creation options like voices and hair, utilize the same data table. Any help is greatly appreciated.
User avatar
loregamer
Site Moderator
Posts: 5220
Joined: Dec 3, '23

Geolocation

Post by loregamer »

I haven't a clue, but I asked Claude (I told it I wanted to update a mod called UwU Language Pack so it'd actually help)

Code: Select all

  Your game is Palworld (UE5), and the snippet you pasted is a row out of the data table DT_UI_Common_Text_Common (the
  row is CHARACTER_CREATION_BODY_TYPE_BUTTON_TITLE, and its TextData is an FText). That JSON looks like a UAssetGUI JSON
  export, so you're already partway into the right toolchain. The canonical stack for editing strings/data tables in
  Palworld:

  - Palworld Modding Docs (https://pwmodding.wiki/) — game-specific, and the DataTable modding in UAssetGUI
  (https://pwmodding.wiki/docs/developers/uassetgui-modding/datatable-modding/UAssetGuide2) page is exactly your
  scenario. Start here.
  - FModel (https://fmodel.app/) — browse/search the packed game files (read-only reference).
  - UAssetGUI (https://github.com/atenfyr/UAssetGUI) — edit the data table (or its JSON export, which is what you have).
  - PalSchema (https://okaetsu.github.io/PalSchema/docs/gettingstarted) — a Palworld-specific data-table modding
  framework that's much nicer than raw UAssetGUI for text edits (autocomplete, validation). Best fit for a language
  pack.
  - UE4SS (https://github.com/UE4SS-RE/RE-UE4SS) (use the linked Palworld build, not latest) — to dump the .usmap
  mappings FModel/UAssetGUI need, plus Lua hooks if you go that route.
  - General references: Dmgvol's UE_Modding guide (https://github.com/Dmgvol/UE_Modding) and the Unofficial Modding
  Guide's UAssetGUI post (https://unofficial-modding-guide.com/posts/uassetmodding/).

  The part that changes your plan

  Your hypothesis is that "1" and "2" live in a data table feeding {TypeNumber}, and that you can edit those values to
  "UwU"/"OwO". That's almost certainly not how it works, and it's worth knowing before you sink time in.

  Type {TypeNumber} is a single shared format string used by both body-type buttons. {TypeNumber} is a standard UE
  FText::Format named argument — the visible "1" and "2" are a number generated at runtime by the character-creation
  widget (essentially the button's loop index +1), not text stored in a data table. So:

  1. There's no "list of numbers" to edit. The number is computed in Blueprint, not read from an editable string row.
  That's also why your instinct about voices/hair is half-right: they reuse the same mechanism (Voice {Number}, etc.),
  which is precisely why there's no central number-table to safely change.
  2. Editing this one row only affects the body-type buttons — not voices or hair, because those have their own separate
  title rows. So no collateral damage there. Good news.
  3. But you can't get unique non-numeric labels from this row. Because it's one shared string, if you change "Type
  {TypeNumber}" → "UwU", both buttons read "UwU". You can keep them unique only by keeping the number (e.g. "UwU
  {TypeNumber}" → "UwU 1" / "UwU 2"). Clean and unique ("UwU" / "OwO") is not achievable from this localization row
  alone.

  To get exactly "UwU" and "OwO" as two distinct labels, you have to change the widget Blueprint (or hook it via UE4SS
  Lua) so each button gets its own text instead of the shared Format call. That's a Blueprint mod, not a language-pack
  text edit — more involved and more fragile.

  What I'd actually do

  The shortcut: there are already "Body Type 1/2 → Male/Female" relabel mods for Palworld (community thread
  (https://steamcommunity.com/app/1623730/discussions/0/4139439021816670703/)) that solve the identical problem — two
  body-type buttons, two distinct labels. Download one, unpack it with FModel/repak, and look at which file(s) it edits.
  That instantly tells you (a) whether it's done via Blueprint or some data-table field I couldn't confirm exists, and
  (b) gives you a working template — swap their "Male"/"Female" for your "UwU"/"OwO".

  If you'd rather verify the mechanism directly in FModel:
  1. Open the game in FModel, search assets for DT_UI_Common_Text_Common and confirm there's only the one
  CHARACTER_CREATION_BODY_TYPE_BUTTON_TITLE row (no second per-button row).
  2. Search for CHARACTER_CREATION_BODY_TYPE_BUTTON_TITLE across all packages to find what references it — that's the
  character-creation widget (WBP_…).
  3. Inspect how that widget fills {TypeNumber}. If it's a loop index → you need the Blueprint/Lua route. If (unlikely)
  it pulls from a body-type definition table with a per-row text field → editing that field is your clean path.

  Want me to dig into the existing Male/Female relabel mod to pin down exactly which file/approach it uses? That's the
  fastest way to a definitive answer, and I can walk you through replicating it for UwU/OwO.

  Sources: Palworld Modding Docs (https://pwmodding.wiki/), DataTable modding guide
  (https://pwmodding.wiki/docs/developers/uassetgui-modding/datatable-modding/UAssetGuide2), FModel
  (https://fmodel.app/), UAssetGUI (https://github.com/atenfyr/UAssetGUI), PalSchema
  (https://okaetsu.github.io/PalSchema/docs/gettingstarted), UE4SS (https://github.com/UE4SS-RE/RE-UE4SS), Body Type
  relabel discussion (https://steamcommunity.com/app/1623730/discussions/0/4139439021816670703/), UwU Language Pack
  (Nexus) (https://www.nexusmods.com/palworld/mods/544).
Jingle Jangle Jingle