Skip to main content
Modding Guide
PalMods.gg
Guides/Modding/Create a PalSchema Mod
Creator pathPalworld 1.0Intermediate

Create a PalSchema Mod

Set up the development build, generate schemas, inspect game data, make a targeted JSON edit, validate it, test with auto-reload, and package it cleanly.

22 min read Researched for 1.0 Sources included

PalSchema authoring turns supported Palworld data and Blueprint-property edits into small JSON or JSONC documents backed by generated schemas. The schema is the contract between your editor and the current game data: it provides discoverable keys, types, enums, and validation before the runtime ever sees the mod.

The productive loop is generate for the current Palworld revision, choose one supported category, copy only the row or property you intend to change, validate in the editor, then watch PalSchema apply it in a disposable session. Do not start by copying an entire table; the smallest patch is easier to merge, review, and update.

02Development setup

Build the authoring environment

  1. 01

    Install the documented development stack

    Use the PalSchema development release, the exact experimental Palworld UE4SS build it names, and any generated schema prerequisites from the maintainer instructions.

  2. 02

    Launch once and inspect logs

    Prove UE4SS and PalSchema initialize before adding your package. Resolve signature, generation, and path errors at the framework layer first.

  3. 03

    Generate schemas for this game revision

    Run the maintainer’s generation workflow after Palworld changes. Store the generated version/revision with your development notes, but do not assume old output describes new game data.

  4. 04

    Connect your editor

    Open the mod workspace in an editor with JSON Schema support so autocomplete, required fields, property types, and validation appear while you write.

  5. 05

    Create a uniquely named mod folder

    Keep the supported category directories under one stable package identity. Avoid generic names that will collide with another author’s folder or official PackageName.

03Schema map

Choose the narrowest supported category

Category familyUse it forReview focus
pals / itemsTargeted Pal or item parameters and related dataRow identity, type, persistent effects, overlapping properties
buildings / spawnsConstruction definitions and world distribution dataWorld-state migration, multiplayer authority, removal
blueprintsSupported structured Blueprint defaults/propertiesObject path, property type, runtime vs default behavior
translationsLanguage strings and additionsStable keys, locale coverage, encoding
appearance / skinsSupported presentation or skin dataAsset availability and client requirements
raw / enumsAdvanced schema-exposed structuresCurrent generated shape and semantic validity
04Minimal patch

A targeted data-table edit

This illustrates the maintainer’s “table, row, changed property” shape. Use autocomplete from your generated schema for the exact current key and type; do not copy values blindly.

ExampleBalance/pals/DT_PalMonsterParameter.jsoncjsonc
{
  // Target only the row and property your mod owns.
  "Kitsunebi": {
    "WorkSpeed": 120
  }
}
06Test loop

Iterate without losing the signal

  1. 01

    Start with one property

    Choose a change with an obvious result and a reversible test. Keep the baseline value in notes so you can prove the patch, not merely notice variation.

  2. 02

    Validate before launch

    Resolve editor schema errors, malformed JSONC, invalid enums, and unknown properties. A warning ignored in source becomes a harder runtime diagnosis.

  3. 03

    Watch a fresh PalSchema log

    Confirm the mod folder, category file, target row/object, and application result appear without parse or schema errors.

  4. 04

    Use auto-reload deliberately

    PalSchema can accelerate supported edits during development. Change one value, wait for the documented reload, and verify it; restart when testing initialization or persistent behavior.

  5. 05

    Test interaction and persistence

    Run on a new world, a copied existing world, multiplayer sides where relevant, and after save–exit–reload. Then test the package with common overlapping mods.

07Compatibility

Design for coexistence

  • Patch only owned properties

    Do not restate unchanged rows or objects; every extra field becomes another possible conflict.

  • Publish a touched-data manifest

    List category, table/object, row, and property so users and patch authors can identify overlap.

  • Avoid relying on application order

    When two semantic changes conflict, provide a deliberate compatibility package instead of promising a filename trick.

  • Separate optional features

    Independent modules let users avoid conflicts and help you identify which edit a game update invalidated.

  • Explain save effects

    State which values are runtime-only and which may be serialized or leave world content behind.

  • Retest generated schemas after updates

    Diff relevant shapes and enums, then test on the new revision before changing the supported-version claim.

08Distribution

Package a maintainable release

Keep only runtime mod content in the release—no generated dump corpus, editor cache, personal paths, backups, or unrelated experiments. For the official loader, add a root Info.json with a stable alphanumeric PackageName, incremented Version, PalSchema InstallRule, MinRevision, and explicit Dependencies for the PalSchema package it requires.

Install the final package through the same path users will use, then retest. A correct source folder can be turned into a broken release by one extra nesting level or a missing category directory. Include a concise change list, touched-data manifest, dependency versions, removal notes, and a known-conflicts section.

09Continue

Validate and release

10Verification

Research sources

The claims in this guide were checked against these current references. Primary sources are marked first.

FAQ

Frequently asked questions

Where do I get the correct property names?

Generate schemas/data for the current Palworld revision using the PalSchema maintainer workflow, then use JSON Schema autocomplete. Old examples are orientation, not a canonical source for the live property shape.

Should I copy an entire data-table row?

Prefer the smallest supported patch containing only the identity and properties you intend to change. Restating unchanged data expands conflict and update risk.

Why is valid JSON rejected or ignored?

JSON syntax is only one layer. Check the category folder, generated schema version, row/object identity, property name and type, runtime log, and whether another package changes the same target.

Can PalSchema auto-reload replace all restarts?

No. Auto-reload is excellent for supported iterative edits, but initialization, object lifetime, multiplayer, save persistence, packaging, and clean-install behavior still require full restart tests.