header
premium banner

Server Tools will start downloading in 5 seconds...

Description

🌐 About

 

Tools for your dedicated server. Highlights include SteamID whitelisting, auto-shutdown timer (with chat reminders to players), chat logging, and more - see Current Features below.

 

Note that this mod has no function on the normal game client and supports Windows servers only (because UE4SS has not been ported to Linux yet).




💡 This is the initial version and has many more features planned, please comment with any issues or requests 😊



🔓 Open-Source (GPLv3): See CosmicDan's Palworld Mods on GitHub




 

Console screenshot




❇️ Current Features

 

  • Whitelist by SteamID64;
  • Broadcast player join/leave to chat;
  • MOTD / Welcome Message to players on login;
  • Chat logging to the server console (for PalServer-Cmd) and to the UE4SS.log file;
  • Automatic shutdown after X minutes, with configurable time-remaining warnings and welcome message (see Config Docs section for details);
  • Logging the server startup process, *reliably* - when ServerTools says your server is up, it's actually up (the world has started ticking);




🔮 Planned Features

 

  • Idle-Kick;
  • Dumping various information to the disk (for e.g. a bot/web service/etc. to consume);
  • Hopefully some world-building/editing capability (e.g. custom ore node placement);
  • Custom zone protection for admin/community spaces;
  • Player and Admin-made "shops" (trade stations) (might need a client mod if I can't do it "magic chests" style);
  • ... share your ideas/requests!




🧰 Installation

 

Since this mod is for dedicated servers only, some intermediate knowledge is assumed. Note - do NOT use a server injector, it is not required with UE4SS v3.

  • If updating ServerTools: delete your old Win64\Mods\ServerToolsLoader folder first;
  • If installing for the first time: Install UE4SS 3.0 or later: Download the release, extract to PalServer\Pal\Binaries\Win64\and start the server once to generate the mod folders;
  • Download the Server Tools mod from CurseForge and extract. Move the contents of each folder to the correct location:
    LogicMods -> PalServer\Pal\Content\Paks\LogicMods\
    Mods -> PalServer\Pal\Binaries\Win64\Mods\
    You should end up with the files:
    PalServer\Pal\Content\Paks\LogicMods\ServerTools.pak
    PalServer\Pal\Binaries\Win64\Mods\ServerToolsLoader\Enabled.txt
    PalServer\Pal\Binaries\Win64\Mods\ServerToolsLoader\Scripts\main.lua [with more lua files/folders] 

    ...start the server once to verify it worked and to generate default configuration files.
  • The console/log should show some info along with the paths of the newly-generated config files; see the screenshot above for example.
  • You can now edit the configs, see the "Config Docs" below for additional details. Note that the server will need to be restarted for config to apply, *except* the whitelist config - it is read fresh from disk every time a player joins.




📜 Config Docs


Note that JSON is not ideal for human-editing, you must be careful to preserve commas and brackets and such. I will move to a better config format soon.

ServerTools.config.json:

"whitelistEnabled":true,
- Whitelist is enabled. Be sure to add SteamID64's to the whitelist json.
"broadcastPlayerJoinLeave":true
- If true, the server will broadcast when a player joins or leaves, in the format "Playername joined" or "Playername left".
"welcomeMsgEnabled":true,
- Enable the welcome message below. Sent to players a few seconds after spawning.
"welcomeMsg":"Welcome to my Palworld server!",
- Self-explainatory.
"chatLogEnabled":true
- If true, all chat messages including slash commands will be logged to the server console / UE4SS log. Includes channel and player name.

 

 

ServerTools.whitelist.json

 

{"whitelistSteamIds":["0","1"]}
- SteamID64's to allow. Note that the defaults of 0 and 1 are invalid and will simply be skipped; they're just for example to show the array structure (remember those darn commas).

Note that you can edit this file while the server is running; it will be reloaded whenever a player logs in.

Also note that you can reformat the config to make it easier to see or generate/edit via automation; ServerTools will not wreck the formatting. E.g.:
{"whitelistSteamIds":[
    "0",
    "1",
    "12345678"
]}

 

 

ServerTools.autoshutdown.json

 

"autoShutdownEnabled":false,
- If auto shutdown is enabled. It's up to your launch script/panel/whatever to restart the server.
"shutdownAfterMinutes":60,
- How many minutes after server launch before the shutdown will occur.
"warnAtMinutesDesc":[30,10,5,1],
- Will broadcast a message (see below) when the server time remaining reaches these thresholds. Be sure to make sure the values are descending and there are no duplicates.
"warnMessage":"Server will restart in {1} minutes",
- The warn message to use. {1} will be replaced with the minutes value.
"addRemainingTimeToWelcomeMsg":true,
- If true, newly joining players will be notified of the next restart time in minutes. Requires welcome message to be enabled.
"addRemainingTimeMsg":"Next server restart in {1} minutes"
- The message to add to welcome message, if enabled. {1} will be replaced with the calculated minutes remaining (rounded down so could potentially say 0 if less than 1 minute remains).

 




✔️ Compatibility and Known Issues



You tell me! Please report any and all compatibility results and issues and I will create this list :)




🛎️ Support



Hopefully, the mod is simple enough to use, but you are more than welcome to:

    • Report any bugs you find;
    • Report any incompatibilities with other mods (e.g. custom beds);
    • Request any features you want to see

 

...and ask pretty much any question related to the mod, I'll reply when I can 😊




💙 Credits and Thanks

 

    • CosmicDan: Server Tools author;
    • localcc: Author of the Palworld Modding Kit, awesome contibutions to UE4SS;
    • Yangff: Help with byteswap stuff (UE GUID parsing);
    • ᒪyrthras: Assistance with Lua <> BP interop;
    • Peep: Play testing and kindly providing a Windows server to dev with;
    • ...and all the others who share their modding wisdom on the Discord




⁉️ Troubleshooting / FAQ



I will fill this in with more specific Q/A as I get feedback, thank you!

Q. Can you make X feature?

A. Maybe! Please comment or contact me on Discord and I'll let you know, this is a first release so I will work on whatever features are most desired.

 

Q. It doesn't work / I can't figure it out

A. Please comment and I will do my best to assist, this is an initial release so I don't know what else to put in this FAQ list yet 😁