PalParty
Palworld party overlay with clickable invites, create/join controls, leader kick management, multilingual text, diagnostics and a crash-safe live green map overlay.
By Darudge
CHANGELOG
Changelog
0.4.18
- Removes the
PalPlayerState:GetPlayerInfoForMaphook entirely after reproducible UE4SS crashes while opening the map with a party active. - Adds a separate non-interactive UMG map layer with a green dot and player name, driven by replicated
CachedPlayerLocation. - Updates only while the map is open, avoiding background native scans and reducing stutter.
- Keeps the normal Palworld map controls underneath the overlay.
- Removes the unsafe
controller:GetPlayerState()identity fallback.
0.4.17
- Fixes native map visibility by supplying a complete live map record in the pre-hook instead of editing the already-filtered return value.
- Uses replicated
CachedPlayerLocationandCachedPlayerRotation, so remote pawn transforms are not touched while the map opens. - Keeps the party member's name and sets Palworld's native green
bIsFriendflag. - Removes the unsafe generated
controller:GetPlayerState()fallback that could call a null native object during replication.
0.4.16
- Prevents the global left-mouse hook from running during normal gameplay.
- Coalesces rapid overlay clicks before they are queued on the game thread.
- Keeps the native map marker hook and party-marker behavior unchanged.
- Adds a clear runtime version line for this stability build.
0.4.15
- Emergency stability fix for the live map hook.
- Stops rewriting the native player name string inside the map return value.
- Keeps Palworld's own name and live transform and only changes the friend flag.
- Corrects the runtime version diagnostic so the loaded version is visible in the log.
0.4.14
- Reduces online-player scans to one background scan about every five seconds.
- Refreshes the player list once when the overlay opens instead of scanning during every UI update.
- Prevents duplicate scans caused by
ui_update()and the UI refresh loop both enumeratingPalPlayerStateobjects. - Throttles diagnostic scan logging to avoid frequent synchronous log-file writes and intermittent frame stalls.
0.4.13
- Reworks the map integration to use UE4SS's post-hook return-value pattern.
- Preserves Palworld's native live transform instead of returning a hand-built Lua table.
- Marks accepted party members with Palworld's native
bIsFriendflag for the green dot and keeps their name visible. - Adds diagnostics showing when the native map function is called and when a green party marker is written.
- Removes the unsafe pawn/transform construction from the map hook.
0.4.12
- Replaces the direct
EnterChat_ReceiveUE4SS call with Palworld's saferPalPlayerState.EnterChatentry point. - Avoids the native game-thread abort observed immediately after sending a party invitation on the affected Palworld build.
- Logs whether a valid local PlayerState was found and whether Palworld accepted the chat message.
0.4.11
- Uses Palworld's real
PalPlayerController.EnterChat_Receive(FString, Category)server RPC for cross-client party messages. - Fixes remote invite delivery: the invited player now receives a pending invitation instead of the invite being lost locally.
- Adds diagnostics for incoming party chat, chat transport and pending invitations.
- An invitation is only a request; the invited player must click
Accepterenbefore appearing in the party roster.
0.4.10
- Rebuilds the overlay automatically when its UMG widget becomes invalid after a profile reload or world transition.
- Logs the Y readiness result so a failed open is visible immediately in
PalParty.log.
0.4.9
- Resolves the local player through
PalPlayerControllerand itsPlayerStatewhenGetPlayer()is empty, fixing party creation and marker toggling on affected Palworld sessions. - Sends party chat through the local controller as a fallback and logs the resolved local sender.
- Tries the active mod directory and direct file loading for
config.lua. - Uses the safe widget color method for the editable party-code text.
0.4.8
- Loads the installed
config.luafrom the package directory, soLanguage = "en","de","fr"or"es"is applied instead of silently using the embedded default. - Replaced the unsupported editable-box background calls with a native editable text widget over a black UMG background and white text.
- Added click-position diagnostics and a forgiving fallback hit area for
Party makenon viewport layouts that report a shifted mouse position.
0.4.7
- Removed direct native
UButton.OnClickeddelegate binding after crash logs showed the overlay dying during UMG creation in UE4SS. - Restored the stable global mouse hit-test path for all clickable buttons.
- Kept the local party-command fix, black input field, multilingual text and icon from 0.4.6.
0.4.6
- Fixed the clickable
Party makenaction by applying the command locally before sending it through global chat. - Added a native UMG click binding with the existing mouse hit-test fallback.
- Changed the party-code field to a black background with white text and hint text.
- Added Dutch, English, German, French and Spanish overlay/chat translations through
Languageinconfig.lua. - Updated the Thunderstore description and package icon.
0.4.5
- Fixed invisible overlay text caused by passing an incomplete
FSlateFontInfotoSetFont. - Preserves Palworld's existing valid font asset and only adjusts its size when the widget exposes it.
0.4.4
- Redesigned the overlay with a Palworld-style dark navy, cyan and blue UI palette.
- Added responsive viewport sizing, smaller readable fonts, spacing and row limits so text no longer overlaps or runs off-screen.
- Added a clear close button and improved party-code input focus handling.
- Switched the open menu to UI-only input mode and blocks movement/look input while open, preventing Palworld keybinds from firing behind the menu.
0.4.3
- Fixed the controller lookup for Palworld/UE4SS. The previous build called a nonexistent global
GetPlayerController()function, so the hidden UI bootstrap and delayed Y registration never ran. - Uses the local player's
GetPalPlayerController()method with aPalPlayerControllerlookup fallback.
0.4.2
- Initializes the native UMG interface hidden as soon as the player controller is ready, so UI construction errors are visible in the diagnostic log before pressing Y.
- Registers input after player-controller readiness instead of only during early mod startup.
- Logs the complete Y path: key callback, game-thread dispatch, action request and UI open/close.
0.4.1
- Fixed a startup failure where UE4SS could not resolve
scripts/config.luathrough the shimloader virtual path. - Added embedded safe defaults and protected optional config loading, so the mod can register the Y overlay even when the external config path is unavailable.
- Added a diagnostic log entry showing whether the optional config was loaded.
0.4.0
- Replaced the F-key interface with a clickable in-game overlay opened with
Y. - Added online-player list, party invitations, accept/decline inbox and leader kick controls.
- Added
PalParty.logdiagnostics with input, UI, chat, map and error events. - Fixed the map hook to return live
FPalPlayerInfoForMapdata fromPalPlayerState.
0.3.1
- Fixed the config path for the Thunderstore shimloader profile. The mod now loads
scripts/config.luacorrectly through the virtual profile mapping.
0.3.0
- Added a native Palworld in-game party interface.
- Added F6 to open/close the interface.
- Added F2 create, F3 join, F4 list, F5 leave, F7 marker toggle and Ctrl+K kick shortcuts.
- Added a live party roster, leader label and marker status panel.
- Added a party-code/player-name input field to the interface.
0.2.0
- Fixed the UE4SS chat hook registration.
- Fixed map hook registration and added the current
PalPlayerControllermap hook. - Changed commands to the safe
!partyprefix. - Added chat confirmations.
- Added
!party listwith leader labels. - Added leader-only
!party kick <player name>. - Added leader promotion when a leader leaves.
- Kept native map transforms for live position refreshes.
0.1.0
- Initial Thunderstore package.