Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoCrafter

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 plan command 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.

What it does

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))

Design, in three points

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.

Requirements

  • 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-palworld build.
  • Palworld 1.0 / 1.0.1.

Install

<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].

Configuration

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.

Commands

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.

Status

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.

Credits and prior art

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/Gamestormingpalworld-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.

Licence

MIT. See LICENSE.

About

Automatically crafts the intermediate components you're missing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages