File information
Last updated
Original upload
Created by
Ulti and ZvendsonUploaded by
UltimeitVirus scan
Tags for this mod
About this mod
Prevents most of the known (and some unknown yet) cheats/exploits/crashes by adding serverside validation checks before executing them. If player attempts to do something that is considered cheating - it either warned, kicked, banned or IP banned, depending on config settings.
Currently in beta and available only for Windows dedicated server.
- Permissions and credits
-
Credits and distribution permission
- Other user's assets All the assets in this file belong to the author, or are from free-to-use modder's resources
- Upload permission You are not allowed to upload this file to other sites under any circumstances
- Modification permission You must get permission from me before you are allowed to modify my files to improve it
- Conversion permission You are not allowed to convert this file to work on other games under any circumstances
- Asset use permission You must get permission from me before you are allowed to use any of the assets in this file
- Asset use permission in mods/files that are being sold You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
- Asset use permission in mods/files that earn donation points You are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
MinHook - https://github.com/TsudaKageyu/minhook
version.dll Wrapper - https://github.com/SubstituteR/DllWrapper
nlohmann json - https://github.com/nlohmann/jsonDonation Points system
Please log in to find out whether this mod is receiving Donation Points
- Changelogs
-
-
Version 1.3.1
- [Fix] Updated SDK to 0.5.3
-
Version 1.3.0
- [Fix] Updated SDK to 0.5.2
- [Fix] Fixed a crash where a Player could not have a name and caused a `Memory Access Violation`.
- [Fix] Fixed a crash where `/give` and `/giveme` received a PalId instead of ItemId.
- [Fix] Fixed a crash, where a player could send a malicious packet.
- [Fix] Fixed a bug where Network logger, still logged to console.
- [Fix] Fixed spawning pals where IVs were not properly set.
- [Fix] Fixed login and logout logging. IP, UserId and PlayerUId are now correctly shown. Added additional log to track who tried to connect to yoru server and added the reason why they could not connect.
- [Fix] Changed PalDefender's initialization stopwatch from 30s to 90s. (for UWorld & other to build up.)
- [Hotfix] Removed an outdated Cheater detection that caused problems with low level Pals.
- [New] **PalTemplates** can now apply skins by setting the `SkinId`. (Does work for any _j pal command!)
- [New] Added command `/skins` that will show what SkinIds exist.
- [New] Added command `/alert <message>` to show a big important text in red. (Same as Meteor text) Use `\n` for multi lines.
- [New] Added logging when a spectator switch to another target. (Console only, HUD is blocked clientside.)
- [New] Added a new config `dontAnnounceAdminConnections` where admins (through auto admin login) are not annonced in the chat.
- [New] Added a new config `exitServerOnStartupFailure` where the server will exit with exit code `1066` (`ERROR_SERVICE_SPECIFIC_ERROR`) when PalDefender could not start up.
-
Version 1.1.6
- [Fix] PalGuard renamed to PalDefender. (Reason: DMCA lawsuit)
- [Fix] Versioning changed from `{Major}.{Build}` to `{Major}.{Minor}.{Patch}.{Build}`.
- [Fix] `PalGuard.json` renamed to `Config.json`
- [Fix] Added `ue4ss` directory in WineProton zip.
- [New] Crossplay compatibility added. Full UserId now required: `steam_798243543` or `gdk_798243543` instead of just `798243543`. **This includes whitelist UserIds.**
- [New] Logging system overhauled.
- - Improved command logging for better debugging.
- - Routed & filtered original Palworld logging through PalDefender.
- [Fix] RESTAPI logs now stored in `.../PalDefender/Logs/RESTAPI/`. Errors still appear in the main log & console.
- [Fix] Network logger logs to `.../PalDefender/Logs/Network/`. Added config option `"logNetworkingToConsole": true` to toggle console logging.
- - Affects mostly `/give`-item commands due to RCON limitations.
- [Fix] Fixed a PalDefender memory leak introduced in 0.4.X.
- [Fix] SDK has been updated to 0.5.0
- - Addressed multiple crashes.
- [New] `/reloadcfg` now also refreshes the Palworld banlist.
- [New] Added MOTD (Message of the day) config `"MOTD"`.
- - Sends a message to players when they join the server.
- - Supports 4 variables: `{PlayerName}`, `{ServerName}`, `{Difficulty}`, `{DeathPenalty}`.
- - Set `"MOTD": []` to disable it.
- - Remove all lines to disable it, like this: `"MOTD": []`.
- [New] Removed `/kickid` command.
- [New] Command changes:
- - `/kick <Name>` → `/kick <UserId>`
- - `/banid <UserId>` → `/ban <UserId>`
- - `/ipbanid <UserId>` → `/ipban <UserId>`
- - `/ipban_ip` → `/banip <IP>`
- - `/unban_ip` → `/unbanip <IP>`
- [HotFix] Broadcast messages changed from `[PalDefender]` to `[SYSTEM]` due to a ChatFilter bug (temporary fix).
- [New] Godmode added!
- - Command `/godmode [on/off]`.
- - Grants invulnerability (including status effect immunity).
- - Allows one-shotting everything (if `"allowAdminCheats": true`).
- - `"allowGodmodeOnehit"` added to config.
- - No food consumption or item durability loss.
- - Fully restores health upon activation.
- [New] OilRig Manager added!
- - `/resetoilrig <oilrig>` resets OilRigs boxes, enemies, etc (`lv30`, `lv55`, `lv60`, `all`).
- - OilRig EndGoal-Boxes logging and announcements:
- - `"logOpenOilrigBoxes"`, `"announceOpenOilrigBoxes"` added to config.
- - Combat Helicopter kill logging and announcements:
- - `"logHelicopterKills"`, `"announceHelicopterKills"` added to config.
- - OilRig (Lv60) EndGoal-Box now locks for 5 minutes for the player's guild who killed the combat helicopter.
- - `"OilrigGoalBoxLocktime"` added (in seconds), set to `0` to disable.
- [New] `/goto` reworked:
- - Syntax changed to `/tp <X> <Y> [Z]` (Z optional, not recommended).
- - Teleporting while riding a Pal now supported.
- - `/tp <UserId>` (teleport to player).
- - `/tp home` (nearest BaseCamp).
- - `/tp oilrig` (nearest OilRig).
- - `/tp oilrig:Lv30` (specific OilRig: `Lv55` `Lv60`).
- [New] PalJSONs reworked:
- - Renamed to `PalTemplate`.
- - Path changed to `../Pal/Binaries/Win64/PalDefender/Pals/Templates/`.
- - File structure completely changed—use `/exportpals` to see the new format.
- - `/exportpals` updated accordingly.
- [Fix] `/givestats` and `/givemestats` no longer cause crashes.
- [Fix] Fixed server crash when killing wild pals above level 100. (Supports lv255 pals - Compatible with mods)
- [Fix] Death announcements now display Pal IDs correctly.
- [Revert] `/delitem` with `Amount=0` now shows item count
- [Fix] Pals now properly attack enemies in base camp battles when assigned via command.
- [New] `/givestats` and `/givemestats` notify target players.
- [New] `/givestats` default `Amount` is now `0` (displays unused points).
- [New] `/settime <hour>` added (values: `0-23`, `day`, `night`).
- [New] `/exportguilds` updated:
- - Added `MapPosition` alongside `WorldPosition`.
- - Coordinates now logged as key-value pairs.
- - Added `LastOnlineTicks` and `LastOnlineUnix`.
- - GuildChest, Pal Labor Research Laboratory, and Expeditions now logged.
- [New] `/spectate` added (toggle spectate mode). You can still trigger spectate mode with shortcut `\` (only Admin).
- [New] `/spawnpal <PalID> [X] [Y] [Z] [Level=1]` added. (RCON requires coordinates.)
- [New] `/spawnpal_j <PalTemplate> [X] [Y] [Z]` added. (RCON requires coordinates.)
- [New] `/renameplayer <UserID> <NewName>` added.
- [New] `/giveegg <UserID> <EggID> <PalID> [Level=1]` added.
- [New] `/givemeegg <EggID> <PalID> [Level=1]` added.
- [New] `/giveegg_j <UserID> <EggID> <PalTemplate> [Level=1]` added.
- [New] `/givemeegg_j <EggID> <PalTemplate> [Level=1]` added.
- [New] Those commands now only accept map coords (the in-game 'M' map):
- - `/getnearestbase`
- - `/gotonearestbase`
- - `/killnearestbase`
- - `/spawnpal`
- - `/spawnpal_j`
-
Version 0.1.1273
- Updated PalSDK to v0.4.13
-
Version 0.1.1272
- - [Fix] Improved overall stability and performance.
- - [Fix] Fixed Chat logging. It is now working as expected again.
- - [Fix] Fixed the typo in the outputstring of command `/pgbroadcast`.
- - [Fix] Fixed directory and file population. PalGuard structure has been changed due this change. (‼️ **Please move your old config to the new location** ‼️)
- - [Fix] Fixed a bug where `PalStatsMaxRank` was set to 10 instead of 20.
- - [Fix] Fixed network logging from unwanted spam-logs.
- - [Fix] Fixed a crash when using the commands `/givepal` and `/givepal_j`.
- - [New] Added a config field `"disablePalRenaming"` to disable renaming of Pals.
- - [New] Changed command syntax of `/givepal` to `/givepal <platformID> <PalID> [Level]` (Level defaults to 1)
- - [New] Pal levels given through commands `/jetragon` and `/catwaifu` are set to the currents game max level. (Also adjusts to modded level caps.)
- - [New] Pals given through `/give`-commands now have randomized stats and passives. PalJSON files will also have randomized stats if not declared.
- - [New] Added Command `/givemepal <PalID> [Level]` (Level defaults to 1)
- - [New] Added Command `/givemepal_j <PalJSON>`
- - [New] Added Command `/renameplayer <platformID> <NewName>` to rename another player that is currently online.
- - [New] Added Command `/giveme_relic [Count]` to give yourself liffmunks. (Value can be negative to subtract them.)
- - [New] Added Command `/givetech <platformID> [Count]` to give someone Technology Points. (Value can be negative to subtract them.)
- - [New] Added Command `/givemetech [Count]` to give yourself Technology Points. (Value can be negative to subtract them.)
- - [New] Added Command `/givebosstech <platformID> [Count]` to give someone Ancient Technology Points. (Value can be negative to subtract them.)
- - [New] Added Command `/givemebosstech <platformID> [Count]` to give yourself Ancient Technology Points. (Value can be negative to subtract them.)
- - [New] Logging has been improved.
- - Player will now be logged by **name, platformid, IP and UID**.
- - Added a config field `"logPlayerIP"` to enable/disable IP logging.
- - Added a config field `"logPlayerUID"` to enable/disable UID logging.
-
Version 0.1.1215
- Updated to PalWorld v0.4.11 (Feybreak Update) and tested (at least partially)
-
Version 0.1.1199
- Fixed breaking patterns
- Removed multi byte characters in RCON responses
- Added commands: /giveitems, /delitems, /deletepals, /setguildleader
- Improved some command robustness
- Included wiki link into dll
- Added chinese support for wiki (Thx to MicahZheng)
- A lot internal robustness improvements
-
Version 0.1.1066
- PalGuard v.1066
- Fixed/Adjusted some output messages
- Added whitelist auto generation when enabled.
- Added pal enhancement exploit protection.
- Added Pal Enhancement limiter (can also be deactivated completely)
- Added 2 more boolean config options: "doActionUponIllegalPalStats" & "palStatsMaxRank"
- "doActionUponIllegalPalStats": true // perform action like kick/ban (depends on cfgsettings) when the cheat is detected
- "palStatsMaxRank": -1 // -1 detects the server's max pal enhancement option. Also allows to limit or deactivate pal enhancement
-
Version 0.1.963
- Fixed whitelist not working properly
-
Version 0.1.962
- Fixed a crash related to interacting with various objects
-
Version 0.1.961
- Updated to the latest version of the game (v0.3.7.58983)
-
Version 0.1.897
- Updated to the latest version of the game (v0.3.6.57672)
- Disabled any actions (banning/kicking) for hitting other players structures.
-
Version 0.1.895
- Updated to the latest version of the game (v0.3.5.57064)
- Damage logs will now try to show what was used to deal the damage.
- give_exp command now uses different way to give experience, so you should test it yourself before employing it in any automatic systems (it now gives EXP in a really small radius around the player)
-
Version 0.1.891
- Updated to the latest version of the game (v0.3.4.56710)
-
Version 0.1.869
- Fixed a bug with new PvP arena not being able to teleport players.
-
Version 0.1.866
- Updated to support PalWorld v0.3.1 (Sakurajima Update)
- New command: delitem STEAMID64 ITEM_ID AMOUNT - Removes certain amount of items from player inventory, if they have enough items (and tells you how much they have left in their inventory). If they don't - tells you how much they have and does nothing. Yes, it does works with items that are split between different slots. You also probably can use it with Zero AMOUNT to get amount of items player have without removing them.
-
Version 0.1.840
- A lot of fixed bugs.
- Preventions/autoban of various new cheats/exploits.
- Logging system changed. Now it logs in `/palguard/logs` folder, with different file name format and log format. Not-so-useful information is no longer displayed in console window, instead it is going in log only. Caught cheaters will now be additionally logged in separately named file (so you don't have to go through every file to find if someone cheated).
- New command: `give_relic STEAMID64 AMOUNT` - Gives player lifmunk effigies (giveitem does **not** work properly for those).
- New command: `givepal_j STEAMID64 FILENAME` - Mode advanced version of `givepal` command, which allows you to configure nearly every stat of a given Pal. `FILENAME` argument is a name of the JSON file in `/palguard/pals/` folder. Documentation later:tm:
- New command: `exportpals (OPTIONAL)STEAMID64` - Exports your (or chosen player, if `STEAMID64` argument is provided) currently equiped Pals into `/palguard/pals/` folder, so you can edit/import them later.
- New config option `adminAutoLogin` - automatically gives you admin rights, if your IP matches admin whitelist.
- New config option: `disableRenaming` - Disallows players from renaming their character. (They still can rename Pals though)
-
Version 0.1.714
- Updated for PalWorld v0.2.0.6/0.2.1.0
-
Version 0.1.698
- Fixed crash exploit used by various cheats.
- Fixed possible rare false bans related to teleporting.
- Cheater logs now also have SteamID64.
- `getnearestbase` command now also shows base owner (guild) UID.
- New config option `disableButchering`. It ain't perfect, but better than nothing if you want to fix dupe exploit with infinite butchering.
-
Version 0.1.683
- Fixes.
- `pvpMaxToPlayerDamage` Config option removed (it was only used by PalGuard internally and was causing confusion)
- `isStealingAllowed` Config option removed (it was not being used since PalWorld 1.4 update anyway.
- `givepal` command now returns response on success.
- `givepal` command now actually gives pals with random gender.
- `kickid`, `banid`, `ipbanid`, `setadmin` commands now accept both UID or STEAMID64 as argument.
- New chat command `getnearestbase` - Tells you guild name which owns base nearest to your character.
- New chat command `gotonearestbase` - Teleports you to nearest base.
- New chat command `killnearestbase` - Destroys nearest base. **Use with caution**
- New command `removedroppedpals` - Removes Pals that are dropped on the ground.
- New chat command `adminlogout` - Logs you out of admin mode.
- New command `getip UID/STEAMID64` - Finds online player with provided UID/STEAMID64 and gives you their IP.
- New command `unban_ip IP` - removes provided IP from the IP ban list.
-
Version 0.1.636
- Fixes
- New RCON command `getrconcmds` - Gets all PalGuard RCON available commands and amount of arguments required
- New config option `disableIllegalItemProtection` - disables protection against Debug/Robbery spheres (some mods add them as craftable items to the game)
- New config option `bannedMessage` - allows you to customize message players see when they try to join your server while being IP banned
-
Version 0.1.622
- Fixes
- Removed [Palguard] prefix from message broadcasts
- **Players whitelist** now supports IP whitelisting. Also supports IPs with wildcard (`75.115.*.*` , `*.*.17.114` , etc.).
- New config option `RCONbase64` - set this to `true` to use base64 encoding in RCON. Pros: works with unicode characters (chinese/korean/russian/etc.). Cons: **You can only use RCON clients that can encode/decode base64.**
- New config option `whitelistMessage` - allows you to customize `You are not whitelisted` message (you can add your discord link or something).
-
Version 0.1.601
- It probably works on newest game version(v0.1.5.1)
- Tweaks & fixes
- New config option `allowNoSpoilModWhichCanCrashYourServer` - set it to `true` if your players can't eat food.
- New RCON command `pgbroadcast` - same as PalWorld `Broadcast`, but better (you can use spaces)
-
Version 0.1.575
- Updated to PalWorld version 0.1.5.0
-
Version 0.1.544
- A lot of bugs/glitches/crashes/etc. fixes
- PalGuard performance optimization
- Bosses in Pal Towers can no longer be captures
- Pals no longer be able to be dropped while mounted (damage buff glitch fix)
- Kicking no longer uses UID, since apparently that wasn't reliable enough (steamid spoofing cheats)
- Duplicate steamIDs are no longer able to join the server. (`steamidProtection` config option)
- `givepal` command is now usable via Rcon and gives rank1 pal, rather than 0.
- New config option: `bannedNames` - some basic pirated versions protection
-
Version 0.1.450
- Linux (via **Wine/Proton ONLY** ) compatibility (requires UE4SS installed). (both versions work on Windows btw)
- Fixed new Pal spawning exploit.
- Added logging for picking up pals.
- Other various minor cheat/bugs fixes.
- New command: `givepal UID/STEAMID64 CharacterID Level` - Gives player a Pal (if your party is full, it will go into your Pal storage)
- New command: `giveegg UID/STEAMID64 Egg_ItemID` - Gives player an egg **with a completely random Pal** inside. Egg item type only affects hatch time, but not the Pal inside.
- New chat command: `jetragon` - Gives you admin jetragon pal (it's fast)
- New chat command: `catwaifu` - Gives you admin Cat Waifu that buffs your character stats.
-
Version 0.1.382
- Crash/bans fixes
- Fixed RCON log showing IP in a reverse order (lol)
- Chat filter is no longer case sensitive
- Fixed incompatibility with G-Portal hosting (and headless server in general)
- Added SteamID64 whitelist system.
- give and give_exp commands now support both UID and SteamID64
- New config option: useWhitelist - enables/disables SteamID64 whitelist.
- New command: whitelist_add STEAMID64 - adds SteamID64 to whitelist.
- New command: whitelist_remove STEAMID64 - removes SteamID64 from whitelist.
- New command: whitelist_get - gets full list of whitelisted players
-
Version 0.1.332
- Fixes, fixes, fixes
- Reworked chat commands framework, so almost all chat commands now work with RCON
- New command: addadminip IP - Adds ip to admin whitelist
- New command: `setadmin UID` - Temporarily grants/revokes admin from a player
- New command: `give UID ITEMID AMOUNT` - Gives player an item
- New command: `give_exp UID AMOUNT` - Gives player experience
- New config option: `logRCON` - Logs RCON commands stuff
- New config option: `pveMaxToPalBanThreshold` - Attempting to deal damage to Pal higher than this number will flag player as cheater.
-
Version 0.1.274
- UE4SS is now supported (hopefully)
- New config option: `bannedChatWords` - allows you to get rid of pesky RMT adverts
- New config option: `chatBypassWait` - allows you to get rid of 1 minute cooldown between sending chat messages
- Patched exploit that was allowing remote collection of stuff on the ground
-
Please visit our Wiki (GitHub) for more details and join our Discord.
Small Features overview. Visit Wiki for in depth details.
- Cheat & Exploit detection, prevention and punishment
- More Admin commands (including RCON)
- IP banning System
- IP whitelist for Admin commands (so cheaters can't use them)
- Chat logging
- Unreal Engine Network logging
- Configurable cheating punishments
- PvP damage limiting (although we would suggest not enabling PvP at all)
- A few game mechanic tweaks such as Pal Enhancement limitations or disable Butchering
- and more
Your Support Keeps PalDefender Alive!
Developing PalDefender is something I’m truly passionate about, but it also takes a significant amount of time and effort. Every update, every fix, and every new feature is the result of countless hours of work.
While I’m incredibly grateful to those who have already supported me, the project still relies mostly on my own time and dedication. If you enjoy using PalDefender and want to see it continue to grow, any support is truly appreciated.
A heartfelt thank you to everyone who has contributed so far. Your support means a lot and helps keep this project moving forward!
Support me on Ko-Fi if you like PalDefender.
Get a Gaming Server: Qonzer (Affiliate Link)
10% Discount code: "PalDefender". See Discord for more information.