Server Tools

Server Tools

675 Downloads

๐ŸŒ 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 ๐Ÿ˜