Crafts the materials you're missing.
Server-side UE4SS Lua mod for Palworld 1.0 Windows dedicated servers.
Queue a craft you're short of an intermediate component for, and the mod crafts the components first, then your target — instead of making you walk the tree by hand.
Pre-alpha. v0.1.0 writes nothing to your game. The planner, recipe graph, stock counting and a read-only
plancommand work. The part that actually sets a station's recipe is not built yet, on purpose: the reflection surface it needs has not been verified on a live server. See Status.
You want a Refined Ingot. It needs 2 Ingots, and you have none — but you do have the ore.
Vanilla makes you set the furnace to Ingot, wait, then set it to Refined Ingot. This mod queues both:
plan: RefinedIngot x1
OK -- 2 step(s), dependency-first:
1. Ingot x2 runs -> IngotItem x2 (for RefinedItem)
2. RefinedIngot x1 runs -> RefinedItem x1 <- TARGET
If you're short on a raw material — ore you have to mine, wood you have to chop — it changes nothing and tells you what's missing:
plan: RefinedIngot x1
REFUSED -- 1 shortage(s), nothing will be changed:
short Ore x3 (no recipe (raw material))
All-or-nothing. A plan runs only if the whole tree is satisfiable from what you already have. Otherwise nothing is touched at all.
This is deliberate, not timid. A station's recipe is ordinary saved state — there's no undo and no self-heal on restart. The alternative ("craft what you can") burns your ore on a partial plan that never reaches the thing you asked for, leaving you worse off than if it had done nothing. So the failure mode here is a log line, never a half-built base.
Existing stock counts, at every level. If a recipe needs 2 Ingots and you have 1 plus ore for another, it makes exactly 1. It won't re-craft what's already in your chests.
One station, for now. v1 drives the station you're using. The planner is already station-agnostic — it emits steps naming a recipe — so spreading sub-crafts across several idle stations is a later change to station selection, not to planning.
- Windows dedicated server. Not a difficulty, a hard constraint: UE4SS has no Linux
support, and Palworld's official position is that server-side mods work only on the Windows
dedicated server. A Wine-hosted Windows build does work — what matters is a writable
Pal/Binaries/Win64, not native hardware. - UE4SS installed in the server. Use Okaetsu's
experimental-palworldbuild. - Palworld 1.0 / 1.0.1.
<server>/Pal/Binaries/Win64/ue4ss/Mods/AutoCrafter/
Scripts/main.lua
Scripts/planner.lua
Scripts/config.lua
enabled.txt
Then restart the server and check UE4SS.log for lines tagged [AUTOCRAFT].
Everything lives in Scripts/config.lua, commented in full. It is read once at mod load —
restart the server after editing.
The defaults are deliberately inert: mode = "recon", dry_run = true,
trigger = "command". Nothing touches your game until you change them, and v0.1.0 has no
write path to enable regardless.
Host control panels generally can't reach UE's console — a panel that proxies to
Palworld's admin API answers Command not found in RestAPI Command List, attempting RCON... Unknown command. That's true of the whole class of panel, not one host. So the reliable
channel is a file.
Write a line into ue4ss/Mods/AutoCrafter/command.txt. The reply appears in
command-out.txt.
| Command | What it does |
|---|---|
plan <item|recipe> [n] |
expand a craft and print the tree. Writes nothing |
stock [filter] |
counted material totals |
stations |
every crafting station and what it's set to |
recipe <item|recipe> |
one recipe's materials |
status |
health summary |
help |
Console commands (autocraft.status, autocraft.plan, …) are also registered for hosts where
they work.
Verified: the planner is correct, to the extent 43 offline assertions can say so. It's a pure function, so it needs no server:
lua tools/test-planner.lua
Not verified: nothing in this mod has run against a live server. The game's crafting surface was read out of the retail server binary's reflection table. That's strong evidence the names exist — a string in the registration data can't be a phantom — but it does not prove Lua can reach them, that they're writable, or that they do what their names suggest.
tools/probe/ settles that, and it's the next step. Two unknowns are load-bearing: whether
ChangeRecipe_ServerInternal is callable from Lua, and how to count a guild's materials
correctly (currently not per-guild, so on a multi-guild server it overcounts — the unsafe
direction, and a blocker for the write path).
See docs/RESEARCH.md for exactly what is and isn't established, and docs/DESIGN.md for the
milestones.
Built on the ground truth accumulated by Guild Stasis, a sibling project — its safety rules each represent a reproduced server crash, and this mod inherits all of them.
Fenyn/Gamestorming→palworld-priority-mod/docs/callpath-map.md, the most valuable published in-game verification log for 1.0 dedicated servers.JaredScar/Palworld-GuildPact, open-source per-guild server-side Lua with an explicit catalogue of what server-side Lua cannot do.
MIT. See LICENSE.