Crash in release android app (with PRO-GUARD enabled)

How frequently does the bug occur?
Always
Description
Our Android app uses a Local Realm database to store data (io.realm.kotlin:library-base:2.1.0).
I've built a release Android APK with pro-guard enabled.
Then I'm launching a release app and I have a crash with the following stack trace.
Regarding pro-guard rules, I use the following - https://github.com/realm/realm-kotlin/blob/main/packages/library-base/proguard-rules-consumer-common.pro
I am using:
io.realm.kotlin:library-base:2.1.0
Kotlin version - 2.0.10
Stacktrace & log output
java.lang.NoSuchFieldException: No field INSTANCE in class Lkotlin/jvm/internal/StringCompanionObject; (declaration of 'kotlin.jvm.internal.StringCompanionObject' appears in /data/app/~~E5HUYWkRiniKGr84TjvJ_Q==/com.savepoint.minemate-9D29GcQTW3IEzQwbRQK_5Q==/base.apk!classes2.dex)
                                                                                at java.lang.Class.getDeclaredField(Native Method)
                                                                                at B9.j.invoke(Unknown Source:304)
                                                                                at j9.c.getValue(Unknown Source:11)
                                                                                at kotlin.reflect.jvm.internal.KClassImpl.v(Unknown Source:10)
                                                                                at kotlin.reflect.full.KClasses.a(Unknown Source:52)
                                                                                at t4.a.F(Unknown Source:5)
                                                                                at com.savepoint.data.armaments_catalogue.entity.ArmamentDb.d(Unknown Source:15)
                                                                                at G6.l.get(Unknown Source:2)
                                                                                at U8.o0.a(Unknown Source:1708)
                                                                                at U8.y0.a(Unknown Source:220)
                                                                                at U8.I0.G(Unknown Source:29)
                                                                                at A6.f.invoke(Unknown Source:593)
                                                                                at U8.L0.invokeSuspend(Unknown Source:110)
                                                                                at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:8)
                                                                                at pa.W.run(Unknown Source:116)
                                                                                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                at java.lang.Thread.run(Thread.java:1012)
                                                                                Suppressed: ua.h: [N0{Cancelling}@8ce0ae9, Dispatchers.IO]

Can you reproduce the bug?
Always
Reproduction Steps

Build release APK with Pro-Guard enabled;
Launch an APP
Crash is occurred

Version
2.1.0
What Atlas App Services are you using?
Local Database only
Are you using encryption?
No
Platform OS and version(s)
Android 14
Build environment
Android Studio Koala Feature Drop | 2024.1.2 Beta 2
Android Gradle Plugin version: 8.6.0-beta02
Gradle version: 8.10.1

Any updates?


handle utf-8 and ignore case when searching dependency

This should improve automatic updates for cyberchef (googlechrome vs. GoogleChrome) and other such cases.

Coincidentally, this could help with some update issues seen in https://github.com/mandiant/flare-vm/issues/437.

Looks like it's working! https://github.com/mandiant/VM-Packages/pull/225

For me there are still many package update failures as seen in https://github.com/mandiant/flare-vm/issues/437

We haven't merged the proposed updates yet, so the packages are not available.
Hope @MalwareMechanic can shed some light on your referenced issue.


fprintd, libfprint : update to 1.90.1

Motivation for this change
Updates libfprint and fprintd. It also adds libpam-wrapper : a library made to test pam modules. This library is used by upstream to test the fprintd build.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @abbradar

Hello @jtojnar : thank you for your review. Currently upstream does not compile, I believe this is the reason they did not tagged it yet.

1.90.1 version has been released on both projects 3 hours ago, I'm currently working on integrating it. I will submit this PR asap. Is it too late for the feature freeze of 20.03 ?

Finished to port 1.90.1 version :

libfprint : Version 1.90.1
libpam-wrapper : New dependency for building/testing the software
fprintd : Version 1.90.1

Current testing :

Worked well for enrolling and using it with on my Lenovo Thinkpad T495 (06cb:00bd device).

The 1.90.x adds native support for a lot of devices that are already on the market, and I believe it could be good thing to have it in 20.03.

We can only backport bugfixes releases, I'm not sure this qualifies as one?

Given that this is still a pre-release, I would move this to 20.09

@jtojnar : I don't see any mention that this one is deemed a pre-release ? They seems to have wanted to release a 1.90.1 version to support the devices while iterating toward a 2.0 version (based on comment on this MR on libfprint)
But let's keep it for 20.09 anyway ;)

Bonus question : should I add myself to the maintainers ?

Bonus question : should I add myself to the maintainers ?

Totally

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/working-on-updating-libfprint-to-1-90/4958/3

@Elyhaka
On my X1 Carbon 7th Gen (20R1), a patch is needed for it to enroll. I successfully resolved yesterday's problem by using patch

@LEXUGE Is there an upstream bug report/merge request for that?

@LEXUGE Is there an upstream bug report/merge request for that?

Not really but it should be a bug

Could you open it then please? Applying random patches for unreported bugs rarely leads to upstream fixes.

Could you open it then please? Applying random patches for unreported bugs rarely leads to upstream fixes.

I will do it later.

Issue has been opened
https://gitlab.freedesktop.org/libfprint/fprintd/issues/50

@LEXUGE : While being an issue on upstream, the way I pass the path to the derivation seems to be broken as is. I'm not sure why it works on my side, probably because I have a state directory that is populated by many tries of many versions while working on the derivation.

I've checked the meson documentation and it seems that the / operator joins path together. I have the feeling that when two joined path starts with / it adds a :. But I am not sure it has behavior at all. I am really not used to work with this build system at all.

So has the issue of broken path solved?

No, not yet, I'd like a second opinion on this subject.

@Elyhaka I'm still not clear about you mean by broken path. Does that mean your packaging work on current build but will fail in the future because the way you package would be broken?
On my side it's working too.

@LEXUGE If I refer to the issue you opened, it seems that the storage path has the format path1:path2 on your system. I'm not sure why it did this on your system to be honest.
Upstream is working on this support for version 2.0.

@LEXUGE If I refer to the issue you opened, it seems that the storage path has the format path1:path2 on your system. I'm not sure why it did this on your system to be honest.
Upstream is working on this support for version 2.0.

emmmm, but on other systems like Arch, there are also this issue as well.
And after the dirty patch, it worked.

Updated this PR:

Rebased on latest master
Cleaned up new derivation libpam-wrapper using the upstream version (and not the fork made by fprintd developers)

The issue @LEXUGE mentionned has been fixed by this commit. I don't know if I should add it as a patch over the 1.90.1 version or simply wait for the 2.0 release.

This is marked "Works for me" by me, on thinkpad t490s, I had to upgrade my firmware for the fingerprint also (https://github.com/fwupd/fwupd/wiki/LVFS-Testing-remote).. but otherwise... works great...

Updated this PR:
* Rebased on latest master

* Cleaned up new derivation `libpam-wrapper` using the upstream version (and not the fork made by `fprintd` developers)

The issue @LEXUGE mentionned has been fixed by this commit. I don't know if I should add it as a patch over the 1.90.1 version or simply wait for the 2.0 release.

Yes, I filed an issue and it has been fixed.

This is marked "Works for me" by me, on thinkpad t490s, I had to upgrade my firmware for the fingerprint also (https://github.com/fwupd/fwupd/wiki/LVFS-Testing-remote).. but otherwise... works great...

Yes, for some synaptics peripherals, the firmware is not yet out of LVFS testing.

ArchLinux switched to 1.90.1 on fprintd and libfprint. I'm using it daily for the last months, maybe we could check if that makes sense for unstable on our side ?

@jtojnar Thank you for the review! I've made the asked changes.

@jtojnar Thank you again for your review, I've tested and pushed the update. I've also added the patch that upstream has made to address @LEXUGE's issue.

Thinkpad mention should probably be removed from nixos/modules/services/security/fprintd.nix

@jtojnar Thank you very much for your time and your extensive review, let me know if there is other parts I can improve.

I've redone a round of tests (enrolling, login with different managers like GDM etc...) it works correctly on my side.

diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index f589ffe8c76..0f5b2ac2244 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -20,7 +20,6 @@
 , systemd
 , libfprint
 , python3
-, pypamtest
 }:

 stdenv.mkDerivation rec {
@@ -43,6 +42,20 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50.patch";
       sha256 = "1wqkk7bqig0fhjbq1487kxkh7yc9356qjsac1x27pzgakbayxpyy";
     })
+    # Fixes issue with ":" when there is multiple paths (might be the case on NixOS)
+    # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch";
+      sha256 = "QNN05WF4YZ0XiTwm5NkfqZDuQpyXlnrh+RJF9SNsCDk=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/4f3589c0dc0feb67c45cdae7e692d70fe493f3d8.patch";
+      sha256 = "2kYo8uqMja3r9SroKB5cR777MJ/BGig4PB1qwLUQ01U=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch";
+      sha256 = "Pga+/QEkln8DOwGZfKM1r2urJX4Y3X0bozWWxKZ5ia0=";
+    })
   ];

   nativeBuildInputs = [
@@ -91,7 +104,10 @@ stdenv.mkDerivation rec {
   # Ideally, we should find a way to execute the test here
   # instead of the buildPhase.
   doCheck = true;
-  checkPhase = ":";
+
+  postPatch = ''
+    patchShebangs po/check-translations.sh
+  '';

   meta = with stdenv.lib; {
     homepage = "https://fprint.freedesktop.org/";

@jtojnar IIRC, GCC checks the LIBRARY_PATH folder. I don't know how acceptable is this solution, but adding:
LIBRARY_PATH = stdenv.lib.makeLibraryPath [ libpam-wrapper ];

Fixes this issue.

I think it is okay for tests in preCheck, it should not affect things much. But I wonder why they do not use compiler.find_library().

I'm now fighting with a python program not loaded correctly from meson:
tests/meson.build:50:0: ERROR: Program(s) ['unittest_inspector.py'] not found or not executable

I'm not sure how to fix this one.

Missed two commits from https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40, now picking it completely:
diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index 3f25e813279..f5bb97a65a5 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -42,6 +42,20 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50.patch";
       sha256 = "1wqkk7bqig0fhjbq1487kxkh7yc9356qjsac1x27pzgakbayxpyy";
     })
+    # Fixes issue with ":" when there is multiple paths (might be the case on NixOS)
+    # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch";
+      sha256 = "QNN05WF4YZ0XiTwm5NkfqZDuQpyXlnrh+RJF9SNsCDk=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch";
+      sha256 = "43uPihK6HhygHw1Qplwci80Wseq/S77VUp+OdEECHmM=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch";
+      sha256 = "Pga+/QEkln8DOwGZfKM1r2urJX4Y3X0bozWWxKZ5ia0=";
+    })
   ];

   nativeBuildInputs = [
@@ -75,10 +89,6 @@ stdenv.mkDerivation rec {
     pypamtest
   ];

-  PKG_CONFIG_DBUS_1_INTERFACES_DIR = "${placeholder "out"}/share/dbus-1/interfaces";
-  PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
-  PKG_CONFIG_DBUS_1_DATADIR = "${placeholder "out"}/share";
-
   mesonFlags = [
     "-Dgtk_doc=true"
     "-Dpam_modules_dir=${placeholder "out"}/lib/security"
@@ -87,10 +97,18 @@ stdenv.mkDerivation rec {
     "-Dsystemd_system_unit_dir=${placeholder "out"}/lib/systemd/system"
   ];

-  # Ideally, we should find a way to execute the test here
-  # instead of the buildPhase.
+  PKG_CONFIG_DBUS_1_INTERFACES_DIR = "${placeholder "out"}/share/dbus-1/interfaces";
+  PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
+  PKG_CONFIG_DBUS_1_DATADIR = "${placeholder "out"}/share";
+
+  # FIXME: Ugly hack for tests to find libpam_wrapper.so
+  LIBRARY_PATH = stdenv.lib.makeLibraryPath [ python3.pkgs.pypamtest ];
+
   doCheck = true;
-  checkPhase = ":";
+
+  postPatch = ''
+    patchShebangs po/check-translations.sh
+  '';

   meta = with stdenv.lib; {
     homepage = "https://fprint.freedesktop.org/";

But it still fails and the errors are even less helpful:
21/26 fprintd:PAM+test_pam_fprintd+TestPamFprintd / TestPamFprintd.test_pam_fprintd_auth                                 FAIL           0.97s (exit status 1)

--- command ---
08:42:36 LD_PRELOAD='/nix/store/7a2q4pykjq9c0jjmdf2v96wjpsvzy8i1-libpam-wrapper-1.1.3/lib/libpam_wrapper.so' TOPSRCDIR='/build/source' TOPBUILDDIR='/build/source/build' G_SLICE='always-malloc' MALLOC_CHECK_='2' G_DEBUG='fatal-warnings' PAM_WRAPPER_SERVICE_DIR='/build/source/build/tests/pam/services' PAM_WRAPPER_DEBUGLEVEL='2' PAM_WRAPPER='1' MALLOC_PERTURB_='55' /nix/store/2dcsn57cgaxs92ha5swihrab0g3l2h6g-python3-3.7.7/bin/python3 /build/source/tests/pam/test_pam_fprintd.py TestPamFprintd.test_pam_fprintd_auth
--- stdout ---
Using template from /build/source/tests/dbusmock/fprintd.py
test_pam_fprintd_auth (__main__.TestPamFprintd) ... ERROR

======================================================================
ERROR: test_pam_fprintd_auth (__main__.TestPamFprintd)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/source/tests/pam/test_pam_fprintd.py", line 99, in test_pam_fprintd_auth
    res = pypamtest.run_pamtest("toto", "fprintd-pam-test", [tc], [ 'unused' ])
pypamtest.PamTestError: [Errno 1] pam_start failed()

----------------------------------------------------------------------
Ran 1 test in 0.649s

FAILED (errors=1)
--- stderr ---
PWRAP_DEBUG[<unknown> (965)] - pwrap_init: Initialize pam_wrapper
PWRAP_DEBUG[<unknown> (965)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.g/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (965)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.g
PWRAP_DEBUG[<unknown> (965)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_DEBUG[<unknown> (967)] - pwrap_init: Initialize pam_wrapper
PWRAP_DEBUG[<unknown> (967)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.i/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (967)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.i
PWRAP_DEBUG[<unknown> (967)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_DEBUG[<unknown> (970)] - pwrap_init: Initialize pam_wrapper
PWRAP_DEBUG[<unknown> (970)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.l/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (970)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.l
PWRAP_DEBUG[<unknown> (970)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_DEBUG[<unknown> (965)] - pwrap_load_lib_handle: Opened /tmp/pam.g/lib/libpam.so.0

-------

I haven't been able to fix the tests, the reason for the pam_start failure is not logged anywhere, I could not manage to find it. I also tried to change libpam-wrapper version to see if the behavior changed (tried the version on Debian and ArchLinux) without any luck.

Tried running it with
    substituteInPlace tests/pam/meson.build --replace PAM_WRAPPER_DEBUGLEVEL=2 PAM_WRAPPER_DEBUGLEVEL=3

in postPatch does not lead to much more info:
PWRAP_DEBUG[<unknown> (987)] - pwrap_init: Initialize pam_wrapper
PWRAP_TRACE[<unknown> (987)] - pwrap_init: pam_wrapper config dir: /tmp/pam.7
PWRAP_TRACE[<unknown> (987)] - pwrap_init: PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so
PWRAP_TRACE[<unknown> (987)] - pwrap_init: PAM library: libpam.so.2.0.0
PWRAP_TRACE[<unknown> (987)] - pwrap_init: Reconstructed PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0
PWRAP_DEBUG[<unknown> (987)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.7/lib/libpam.so.0
PWRAP_TRACE[<unknown> (987)] - pwrap_init: Using libpam path: /tmp/pam.7/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (987)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.7
PWRAP_TRACE[<unknown> (987)] - copy_ftw: Copying /build/source/build/tests/pam/services/fprintd-pam-test
PWRAP_DEBUG[<unknown> (987)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_DEBUG[<unknown> (1086)] - pwrap_init: Initialize pam_wrapper
PWRAP_TRACE[<unknown> (1086)] - pwrap_init: pam_wrapper config dir: /tmp/pam.T
PWRAP_TRACE[<unknown> (1086)] - pwrap_init: PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so
PWRAP_TRACE[<unknown> (1086)] - pwrap_init: PAM library: libpam.so.2.0.0
PWRAP_TRACE[<unknown> (1086)] - pwrap_init: Reconstructed PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0
PWRAP_DEBUG[<unknown> (1086)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.T/lib/libpam.so.0
PWRAP_TRACE[<unknown> (1086)] - pwrap_init: Using libpam path: /tmp/pam.T/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (1086)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.T
PWRAP_TRACE[<unknown> (1086)] - copy_ftw: Copying /build/source/build/tests/pam/services/fprintd-pam-test
PWRAP_DEBUG[<unknown> (1086)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_DEBUG[<unknown> (1149)] - pwrap_init: Initialize pam_wrapper
PWRAP_TRACE[<unknown> (1149)] - pwrap_init: pam_wrapper config dir: /tmp/pam.M
PWRAP_TRACE[<unknown> (1149)] - pwrap_init: PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so
PWRAP_TRACE[<unknown> (1149)] - pwrap_init: PAM library: libpam.so.2.0.0
PWRAP_TRACE[<unknown> (1149)] - pwrap_init: Reconstructed PAM path: /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0
PWRAP_DEBUG[<unknown> (1149)] - pwrap_init: Copy /nix/store/cjwsxn95qzjbhxdilbb3g87xqdx66vvq-openpam-20170430/lib/libpam.so.2.0.0 to /tmp/pam.M/lib/libpam.so.0
PWRAP_TRACE[<unknown> (1149)] - pwrap_init: Using libpam path: /tmp/pam.M/lib/libpam.so.0
PWRAP_DEBUG[<unknown> (1149)] - copy_confdir: Copy config files from /build/source/build/tests/pam/services to /tmp/pam.M
PWRAP_TRACE[<unknown> (1149)] - copy_ftw: Copying /build/source/build/tests/pam/services/fprintd-pam-test
PWRAP_DEBUG[<unknown> (1149)] - pwrap_init: Successfully initialized pam_wrapper
PWRAP_TRACE[<unknown> (987)] - pwrap_pam_start: pam_start service=fprintd-pam-test, user=toto
PWRAP_DEBUG[<unknown> (987)] - pwrap_load_lib_handle: Opened /tmp/pam.7/lib/libpam.so.0

PWRAP_TRACE[<unknown> (987)] - pwrap_pam_start: pam_start rc=4
PWRAP_TRACE[<unknown> (987)] - pwrap_destructor: entering pwrap_destructor
PWRAP_TRACE[<unknown> (987)] - pwrap_destructor: destructor called for pam_wrapper dir /tmp/pam.7
PWRAP_TRACE[<unknown> (987)] - p_rmdirs_at: p_rmdirs_at removing /tmp/pam.7 at CWD

PWRAP_TRACE[<unknown> (987)] - p_rmdirs_at: p_rmdirs_at removing lib at fd=3

only that it must be failing somewhere in libpam_pam_start.
Replacing openpam by linux-pam seems to fix it, though.

I should switch the dependency from openpam to linux-pam in libpam-wrapper then ? I thought they were interchangeable seamlessly, it seems not.

@jtojnar I've pushed an update with the switch from openpam to linux-pam. linux-pam seems to be the de-facto standard for linux distributions, while openpam seems to be more related to the *BSD distributions, and is general provided as an alternative PAM implementation on Linux distributions.

Thanks a lot for your help, time and reviews!

Is anything still preventing this PR from being merged ? :)

Should be fine, thanks again.

Thank you!

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/t495-graphics-glitched/7950/6

See regression reported in #103739


Need a way to define simple data names and its types from editor

Currenty I have to make changes in project code for pre define data names and it's type for producing simple data component with those data names. If I have to add new entries then I have to again edit project code. Also there is no way to create simpledata component with different set of data names.
What's the problem?
Let's say if someone using this in production for big project and in middle they need to define more data names then they have to make change in code and add updated extension as depencecy in editor to build to get new component with new data names. If in game they have already created lots of game objects with previous simpledata component they have to replace previous component with updated component.(I have no clue on this if previous embeded simpledata component will update with new data names automatically or not. If not then there is lots of manual work needed in replacing old simpledata component with new one)
Their is need a way to define simpledata data names from editor and expose those data names field in simpledata component. Just like go propery has in script component.
I realy like this extension project. And it's really suitable for projects with lots of objects which need to define behaviours where we can't add script to every object due to 1024 script limits.
Idea -
Maybe a way create multiple files to define attributes(data names) and it's type

Another file to attach all multiple files that define attributes

And last after building project when we create simple data component there is need a way to which set of simpledata to use , exposing attribute field based on those set -

We do have plans for a much more dynamic data component type to be part of the core of Defold. I'm not sure when this will happen in the Defold core, but we will not expand this example component to support these things.


[BUG - Release] Palworld v<IP_ADDRESS> Dedicated servers refuse connections if UE4SS is installed.

Branch or Release
3.0.1
Game and Engine Version
Palworld v<IP_ADDRESS>. Unreal Engine 5.
Describe the bug
Dedicated servers seem to either refuse connections if UE4SS is installed, even without any additional mods. bUseObjectArrayCache is set to false, and it still refuses to work. Removing UE4SS stops the issue.
Mods directory
Just stock UE4SS Mods folder.
To Reproduce

Install UE4SS on a windows Palworld v<IP_ADDRESS> server.
Try to join it. It'll time out. It won't let you connect. RCON command still work, so it seems the server still runs.

Expected behavior
Being able to connect.
Screenshots, UE4SS Log, and .dmp file
[2024-04-04 20:35:15] Console created
[2024-04-04 20:35:15] UE4SS - v3.0.1 Beta #0 - Git SHA #d935b5b
[2024-04-04 20:35:15] UE4SS Build Configuration: Game__Shipping__Win64 (MSVC)
[2024-04-04 20:35:15] Setting up mods...
[2024-04-04 20:35:15] Starting mods (from mods.txt load order)...
[2024-04-04 20:35:15] Starting mods (from enabled.txt, no defined load order)...
[2024-04-04 20:35:15] No specific game configuration found, using default configuration file
[2024-04-04 20:35:15] Config: D:\home\sid_1340516\palworld\Pal\Binaries\Win64\UE4SS-settings.ini

[2024-04-04 20:35:15] root directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64
[2024-04-04 20:35:15] working directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64
[2024-04-04 20:35:15] game executable directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64
[2024-04-04 20:35:15] game executable: D:\home\sid_1340516\palworld\Pal\Binaries\Win64\PalServer-Win64-Shipping.exe (140991488 bytes)

[2024-04-04 20:35:15] mods directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64\Mods
[2024-04-04 20:35:15] log directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64
[2024-04-04 20:35:15] object dumper directory: D:\home\sid_1340516\palworld\Pal\Binaries\Win64

[2024-04-04 20:35:15] PS Scan attempt 1
[2024-04-04 20:35:15] [PS] Reading image
[2024-04-04 20:35:15] [PS] Starting scan
[2024-04-04 20:35:16] [PS] Scan finished in 210.9865ms
[2024-04-04 20:35:16] [PS] Found EngineVersion: 5.1
[2024-04-04 20:35:16] [PS] Found GUObjectArray: 0x7ff6d873fdd0
[2024-04-04 20:35:16] [PS] Found GMalloc: 0x7ff6d8667768
[2024-04-04 20:35:16] [PS] Found FName::ToString: 0x7ff6d30f02e0
[2024-04-04 20:35:16] [PS] Found FName::FName(wchar_t*): 0x7ff6d30df520
[2024-04-04 20:35:16] [PS] Found StaticConstructObject_Internal: 0x7ff6d3288810
[2024-04-04 20:35:16] [PS] Found FText::FText(FString&&): 0x7ff6d3010ac0
[2024-04-04 20:35:16] PS scan successful
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.Class
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.Struct
[2024-04-04 20:35:16] Need to construct: /Script/Engine.Pawn
[2024-04-04 20:35:16] Need to construct: /Script/Engine.Character
[2024-04-04 20:35:16] Need to construct: /Script/Engine.Actor
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.Vector
[2024-04-04 20:35:16] Need to construct: /Script/Engine.Default__DefaultPawn
[2024-04-04 20:35:16] Need to construct: /Script/Engine.HitResult
[2024-04-04 20:35:16] Need to construct: /Script/Engine.Default__MaterialExpression
[2024-04-04 20:35:16] Need to construct: /Script/Engine.ActorComponent
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.OrientedBox
[2024-04-04 20:35:16] Need to construct: /Script/Engine.MovementComponent
[2024-04-04 20:35:16] Need to construct: /Script/Engine.HUD
[2024-04-04 20:35:16] Need to construct: /Script/Engine.PlayerController
[2024-04-04 20:35:16] Need to construct: /Script/Engine.PlayerCameraManager
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.EInterpCurveMode
[2024-04-04 20:35:16] Need to construct: /Script/Engine.ENetRole
[2024-04-04 20:35:16] Need to construct: /Script/MovieScene.MovieSceneEditorData
[2024-04-04 20:35:16] Need to construct: /Script/UMG.Widget
[2024-04-04 20:35:16] Need to construct: /Script/UMG.ComboBoxString
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.Interface
[2024-04-04 20:35:16] Need to construct: /Script/CoreUObject.DynamicClass
[2024-04-04 20:35:16] Constructed [1 / 23]: /Script/CoreUObject.Class
[2024-04-04 20:35:16] Constructed [2 / 23]: /Script/CoreUObject
[2024-04-04 20:35:16] Constructed [3 / 23]: /Script/CoreUObject.Struct
[2024-04-04 20:35:16] Constructed [4 / 23]: /Script/Engine.Pawn
[2024-04-04 20:35:16] Constructed [5 / 23]: /Script/Engine.Character
[2024-04-04 20:35:16] Constructed [6 / 23]: /Script/Engine.Actor
[2024-04-04 20:35:16] Constructed [7 / 23]: /Script/CoreUObject.Vector
[2024-04-04 20:35:16] Constructed [8 / 23]: /Script/Engine.HitResult
[2024-04-04 20:35:16] Constructed [9 / 23]: /Script/Engine.ActorComponent
[2024-04-04 20:35:16] Constructed [10 / 23]: /Script/CoreUObject.OrientedBox
[2024-04-04 20:35:16] Constructed [11 / 23]: /Script/Engine.MovementComponent
[2024-04-04 20:35:16] Constructed [12 / 23]: /Script/Engine.HUD
[2024-04-04 20:35:16] Constructed [13 / 23]: /Script/Engine.PlayerController
[2024-04-04 20:35:16] Constructed [14 / 23]: /Script/Engine.PlayerCameraManager
[2024-04-04 20:35:16] Constructed [15 / 23]: /Script/CoreUObject.EInterpCurveMode
[2024-04-04 20:35:16] Constructed [16 / 23]: /Script/Engine.ENetRole
[2024-04-04 20:35:16] Constructed [17 / 23]: /Script/MovieScene.MovieSceneEditorData
[2024-04-04 20:35:16] Constructed [18 / 23]: /Script/UMG.Widget
[2024-04-04 20:35:16] Constructed [19 / 23]: /Script/UMG.ComboBoxString
[2024-04-04 20:35:16] Constructed [20 / 23]: /Script/CoreUObject.Interface
[2024-04-04 20:35:16] Constructed [21 / 23]: /Script/CoreUObject.DynamicClass
[2024-04-04 20:35:16] Constructed [22 / 23]: /Script/Engine.Default__DefaultPawn
[2024-04-04 20:35:16] Constructed [23 / 23]: /Script/Engine.Default__MaterialExpression
[2024-04-04 20:35:17] Constructed 23 of 23 objects
[2024-04-04 20:35:17] ProcessInternal address: 0x7ff6d32672b0 <- Built-in
[2024-04-04 20:35:17] ProcessLocalScriptFunction address: 0x7ff6d3267360 <- Built-in
[2024-04-04 20:35:17] UnrealConfig.FExecVTableOffsetInLocalPlayer: 28
[2024-04-04 20:35:17] Unreal Engine modules (non-modular):
[2024-04-04 20:35:17] MainExe @ 0x7ff6d04b0000 size=0x8bbc000
[2024-04-04 20:35:17]
##### MEMBER OFFSETS START #####

[2024-04-04 20:35:17] UObjectBase::ClassPrivate = 0x10
[2024-04-04 20:35:17] UObjectBase::bFindCameraComponentWhenViewTarget = 0x5A
[2024-04-04 20:35:17] UObjectBase::InternalIndex = 0xC
[2024-04-04 20:35:17] UObjectBase::EngineShowFlags = 0xB8
[2024-04-04 20:35:17] UObjectBase::AutoReceiveInput = 0x153
[2024-04-04 20:35:17] UObjectBase::World = 0x78
[2024-04-04 20:35:17] UObjectBase::ObjectFlags = 0x8
[2024-04-04 20:35:17] UObjectBase::OnEndCursorOver = 0x1D6
[2024-04-04 20:35:17] UObjectBase::CustomTimeDilation = 0x64
[2024-04-04 20:35:17] UObjectBase::NamePrivate = 0x18
[2024-04-04 20:35:17] UObjectBase::bAllowTickBeforeBeginPlay = 0x5A
[2024-04-04 20:35:17] UObjectBase::bForceNetAddressable = 0x59
[2024-04-04 20:35:17] UObjectBase::InputPriority = 0x154
[2024-04-04 20:35:17] UObjectBase::OuterPrivate = 0x20
[2024-04-04 20:35:17] UObjectBase::bNetTemporary = 0x58
[2024-04-04 20:35:17] UObjectBase::ActorHasBegunPlay = 0x5D
[2024-04-04 20:35:17] UObjectBase::OnInputTouchEnd = 0x1DA
[2024-04-04 20:35:17] UObjectBase::bHasDeferredComponentRegistration = 0x5C
[2024-04-04 20:35:17] UObjectBase::AttachmentReplication = 0x70
[2024-04-04 20:35:17] UObjectBase::Children = 0x188
[2024-04-04 20:35:17] UObjectBase::DetachFence = 0x280
[2024-04-04 20:35:17] UObjectBase::CreationTime = 0x158
[2024-04-04 20:35:17] UObjectBase::DefaultUpdateOverlapsMethodDuringLevelStreaming = 0x5F
[2024-04-04 20:35:17] UObjectBase::InitialLifeSpan = 0x60
[2024-04-04 20:35:17] UObjectBase::Tags = 0x1C0
[2024-04-04 20:35:17] UObjectBase::InputComponent = 0x160
[2024-04-04 20:35:17] UObjectBase::OnTakePointDamage = 0x1D1
[2024-04-04 20:35:17] UObjectBase::LastRenderTime = 0x17C
[2024-04-04 20:35:17] UObjectBase::RemoteRole = 0x68
[2024-04-04 20:35:17] UObjectBase::Layers = 0x1A8
[2024-04-04 20:35:17] UObjectBase::MinNetUpdateFrequency = 0x174
[2024-04-04 20:35:17] UObjectBase::TimerHandle_LifeSpanExpired = 0x1A0
[2024-04-04 20:35:17] UObjectBase::OnTakeAnyDamage = 0x1D0
[2024-04-04 20:35:17] UObjectBase::NetCullDistanceSquared = 0x168
[2024-04-04 20:35:17] UObjectBase::OnActorEndOverlap = 0x1D4
[2024-04-04 20:35:17] UObjectBase::NetDormancy = 0x151
[2024-04-04 20:35:17] UObjectBase::NetDriverName = 0x148
[2024-04-04 20:35:17] UObjectBase::NetTag = 0x16C
[2024-04-04 20:35:17] UObjectBase::NetPriority = 0x178
[2024-04-04 20:35:17] UObjectBase::PrimaryActorTick = 0x28
[2024-04-04 20:35:17] UObjectBase::NetUpdateFrequency = 0x170
[2024-04-04 20:35:17] UObjectBase::OnClicked = 0x1D7
[2024-04-04 20:35:17] UObjectBase::OnActorBeginOverlap = 0x1D3
[2024-04-04 20:35:17] UObjectBase::OnActorHit = 0x1DD
[2024-04-04 20:35:17] UObjectBase::StatHitchesData = 0x390
[2024-04-04 20:35:17] UObjectBase::OnBeginCursorOver = 0x1D5
[2024-04-04 20:35:17] UObjectBase::OnDestroyed = 0x1DE
[2024-04-04 20:35:17] UObjectBase::OnInputTouchEnter = 0x1DB
[2024-04-04 20:35:17] UObjectBase::bHasAudioFocus = 0xFC
[2024-04-04 20:35:17] UObjectBase::OnEndPlay = 0x1DF
[2024-04-04 20:35:17] UObjectBase::OnInputTouchBegin = 0x1D9
[2024-04-04 20:35:17] UObjectBase::OnInputTouchLeave = 0x1DC
[2024-04-04 20:35:17] UObjectBase::OnReleased = 0x1D8
[2024-04-04 20:35:17] UObjectBase::OnTakeRadialDamage = 0x1D2
[2024-04-04 20:35:17] UObjectBase::Owner = 0x140
[2024-04-04 20:35:17] UObjectBase::ParentComponent = 0x1B8
[2024-04-04 20:35:17] UObjectBase::RayTracingGroupId = 0x6C
[2024-04-04 20:35:17] UObjectBase::ReplicatedComponentsInfo = 0x1F0
[2024-04-04 20:35:17] UObjectBase::ReplicatedMovement = 0xD0
[2024-04-04 20:35:17] UObjectBase::UpdateOverlapsMethodDuringLevelStreaming = 0x5E
[2024-04-04 20:35:17] UObjectBase::ReplicatedSubObjects = 0x1E0
[2024-04-04 20:35:17] UObjectBase::Role = 0x150
[2024-04-04 20:35:17] UObjectBase::RootComponent = 0x198
[2024-04-04 20:35:17] UObjectBase::SpawnCollisionHandlingMethod = 0x152
[2024-04-04 20:35:17] UObjectBase::bNetStartup = 0x58
[2024-04-04 20:35:17] UObjectBase::bActorIsBeingConstructed = 0x5D
[2024-04-04 20:35:17] UObjectBase::bActorBeginningPlayFromLevelStreaming = 0x5C
[2024-04-04 20:35:17] UObjectBase::bAllowReceiveTickEventOnDedicatedServer = 0x5B
[2024-04-04 20:35:17] UObjectBase::bIsMouseOverClient = 0x39D
[2024-04-04 20:35:17] UObjectBase::bActorEnableCollision = 0x5C
[2024-04-04 20:35:17] UObjectBase::bActorInitialized = 0x5C
[2024-04-04 20:35:17] UObjectBase::bActorIsBeingDestroyed = 0x5D
[2024-04-04 20:35:17] UObjectBase::bActorSeamlessTraveled = 0x5B
[2024-04-04 20:35:17] UObjectBase::bActorWantsDestroyDuringBeginPlay = 0x5D
[2024-04-04 20:35:17] UObjectBase::bAlwaysRelevant = 0x58
[2024-04-04 20:35:17] UObjectBase::bAsyncPhysicsTickEnabled = 0x5D
[2024-04-04 20:35:17] UObjectBase::bAutoDestroyWhenFinished = 0x5A
[2024-04-04 20:35:17] UObjectBase::bBlockInput = 0x5A
[2024-04-04 20:35:17] UObjectBase::bCallPreReplication = 0x58
[2024-04-04 20:35:17] UObjectBase::bCallPreReplicationForReplay = 0x58
[2024-04-04 20:35:17] UObjectBase::bCanBeDamaged = 0x5A
[2024-04-04 20:35:17] UObjectBase::bCanBeInCluster = 0x5B
[2024-04-04 20:35:17] UObjectBase::bCollideWhenPlacing = 0x5A
[2024-04-04 20:35:17] UObjectBase::bHasRegisteredAllComponents = 0x5C
[2024-04-04 20:35:17] UObjectBase::bEnableAutoLODGeneration = 0x5B
[2024-04-04 20:35:17] UObjectBase::bExchangedRoles = 0x59
[2024-04-04 20:35:17] UObjectBase::bGenerateOverlapEventsDuringLevelStreaming = 0x5A
[2024-04-04 20:35:17] UObjectBase::bHasFinishedSpawning = 0x5C
[2024-04-04 20:35:17] UObjectBase::bHidden = 0x58
[2024-04-04 20:35:17] UObjectBase::bIgnoresOriginShifting = 0x5A
[2024-04-04 20:35:17] UObjectBase::bIsEditorOnlyActor = 0x5B
[2024-04-04 20:35:17] UObjectBase::bNetCheckedInitialPhysicsState = 0x5B
[2024-04-04 20:35:17] UObjectBase::bNetLoadOnClient = 0x59
[2024-04-04 20:35:17] UObjectBase::bNetUseOwnerRelevancy = 0x59
[2024-04-04 20:35:17] UObjectBase::bOnlyRelevantToOwner = 0x58
[2024-04-04 20:35:17] UObjectBase::bRelevantForLevelBounds = 0x59
[2024-04-04 20:35:17] UObjectBase::bRelevantForNetworkReplays = 0x59
[2024-04-04 20:35:17] UObjectBase::bReplayRewindable = 0x59
[2024-04-04 20:35:17] UObjectBase::bReplicateMovement = 0x58
[2024-04-04 20:35:17] UObjectBase::bReplicateUsingRegisteredSubObjectList = 0x5B
[2024-04-04 20:35:17] UObjectBase::bReplicates = 0x5B
[2024-04-04 20:35:17] UObjectBase::bRunningUserConstructionScript = 0x5C
[2024-04-04 20:35:17] UObjectBase::bTearOff = 0x59
[2024-04-04 20:35:17] UObjectBase::bTickFunctionsRegistered = 0x5C
[2024-04-04 20:35:17] UObjectBase::ActiveSplitscreenType = 0x70
[2024-04-04 20:35:17] UObjectBase::AudioDeviceHandle = 0xF8
[2024-04-04 20:35:17] UObjectBase::CurrentBufferVisualizationMode = 0x130
[2024-04-04 20:35:17] UObjectBase::CurrentLumenVisualizationMode = 0x140
[2024-04-04 20:35:17] UObjectBase::CurrentNaniteVisualizationMode = 0x138
[2024-04-04 20:35:17] UObjectBase::CurrentVirtualShadowMapVisualizationMode = 0x148
[2024-04-04 20:35:17] UObjectBase::CursorWidgets = 0x200
[2024-04-04 20:35:17] UObjectBase::DebugProperties = 0x48
[2024-04-04 20:35:17] UObjectBase::GameLayerManagerPtr = 0x120
[2024-04-04 20:35:17] UObjectBase::HardwareCursorCache = 0x160
[2024-04-04 20:35:17] UObjectBase::HardwareCursors = 0x1B0
[2024-04-04 20:35:17] UObjectBase::HighResScreenshotDialog = 0x150
[2024-04-04 20:35:17] UObjectBase::MaxSplitscreenPlayers = 0x68
[2024-04-04 20:35:17] UObjectBase::MouseCaptureMode = 0x39A
[2024-04-04 20:35:17] UObjectBase::MouseLockMode = 0x39C
[2024-04-04 20:35:17] UObjectBase::SplitscreenInfo = 0x58
[2024-04-04 20:35:17] UObjectBase::StatUnitData = 0x388
[2024-04-04 20:35:17] UObjectBase::ViewModeIndex = 0xB0
[2024-04-04 20:35:17] UObjectBase::Viewport = 0xE8
[2024-04-04 20:35:17] UObjectBase::ViewportConsole = 0x40
[2024-04-04 20:35:17] UObjectBase::ViewportFrame = 0xF0
[2024-04-04 20:35:17] UObjectBase::ViewportOverlayWidget = 0x110
[2024-04-04 20:35:17] UObjectBase::Window = 0x100
[2024-04-04 20:35:17] UObjectBase::bDisableSplitScreenOverride = 0x398
[2024-04-04 20:35:17] UObjectBase::bDisableWorldRendering = 0x6C
[2024-04-04 20:35:17] UObjectBase::bHideCursorDuringCapture = 0x39B
[2024-04-04 20:35:17] UObjectBase::bIgnoreInput = 0x399
[2024-04-04 20:35:17] UObjectBase::bIsPlayInEditorViewport = 0x6C
[2024-04-04 20:35:17] UObjectBase::bShowTitleSafeZone = 0x6C
[2024-04-04 20:35:17] UObjectBase::bSuppressTransitionMessage = 0x88
[2024-04-04 20:35:17] UObjectBase::bUseSoftwareCursorWidgets = 0x250
[2024-04-04 20:35:17] UScriptStruct::StructFlags = 0xB0
[2024-04-04 20:35:17] UScriptStruct::CppStructOps = 0xB8
[2024-04-04 20:35:17] UScriptStruct::bPrepareCppStructOpsCompleted = 0xB4
[2024-04-04 20:35:17] UScriptStruct::ICppStructOps::Alignment = 0xC
[2024-04-04 20:35:17] UScriptStruct::ICppStructOps::Size = 0x8
[2024-04-04 20:35:17] FField::ClassPrivate = 0x8
[2024-04-04 20:35:17] FField::NamePrivate = 0x28
[2024-04-04 20:35:17] FField::FlagsPrivate = 0x30
[2024-04-04 20:35:17] FField::Next = 0x20
[2024-04-04 20:35:17] FField::Owner = 0x10
[2024-04-04 20:35:17] FOutputDevice::bAutoEmitLineTerminator = 0x9
[2024-04-04 20:35:17] FOutputDevice::bSuppressEventTag = 0x8
[2024-04-04 20:35:17] FEnumProperty::Enum = 0x80
[2024-04-04 20:35:17] FEnumProperty::UnderlyingProp = 0x78
[2024-04-04 20:35:17] UStruct::DestructorLink = 0x80
[2024-04-04 20:35:17] UStruct::Children = 0x48
[2024-04-04 20:35:17] UStruct::ChildProperties = 0x50
[2024-04-04 20:35:17] UStruct::PostConstructLink = 0x88
[2024-04-04 20:35:17] UStruct::UnresolvedScriptProperties = 0xA0
[2024-04-04 20:35:17] UStruct::MinAlignment = 0x5C
[2024-04-04 20:35:17] UStruct::PropertiesSize = 0x58
[2024-04-04 20:35:17] UStruct::PropertyLink = 0x70
[2024-04-04 20:35:17] UStruct::RefLink = 0x78
[2024-04-04 20:35:17] UStruct::Script = 0x60
[2024-04-04 20:35:17] UStruct::ScriptAndPropertyObjectReferences = 0x90
[2024-04-04 20:35:17] UStruct::SuperStruct = 0x40
[2024-04-04 20:35:17] UFunction::EventGraphCallOffset = 0xD0
[2024-04-04 20:35:17] UFunction::EventGraphFunction = 0xC8
[2024-04-04 20:35:17] UFunction::RPCId = 0xBA
[2024-04-04 20:35:17] UFunction::FirstPropertyToInit = 0xC0
[2024-04-04 20:35:17] UFunction::Func = 0xD8
[2024-04-04 20:35:17] UFunction::FunctionFlags = 0xB0
[2024-04-04 20:35:17] UFunction::NumParms = 0xB4
[2024-04-04 20:35:17] UFunction::ParmsSize = 0xB6
[2024-04-04 20:35:17] UFunction::RPCResponseId = 0xBC
[2024-04-04 20:35:17] UFunction::ReturnValueOffset = 0xB8
[2024-04-04 20:35:17] UField::Next = 0x28
[2024-04-04 20:35:17] FProperty::ArrayDim = 0x38
[2024-04-04 20:35:17] FProperty::DestructorLinkNext = 0x68
[2024-04-04 20:35:17] FProperty::ElementSize = 0x3C
[2024-04-04 20:35:17] FProperty::NextRef = 0x60
[2024-04-04 20:35:17] FProperty::Offset_Internal = 0x4C
[2024-04-04 20:35:17] FProperty::PostConstructLinkNext = 0x70
[2024-04-04 20:35:17] FProperty::PropertyLinkNext = 0x58
[2024-04-04 20:35:17] FProperty::PropertyFlags = 0x40
[2024-04-04 20:35:17] FProperty::RepIndex = 0x48
[2024-04-04 20:35:17] FProperty::RepNotifyFunc = 0x50
[2024-04-04 20:35:17] UWorld::BlockTillLevelStreamingCompletedEpoch = 0x144
[2024-04-04 20:35:17] UWorld::bAllowAudioPlayback = 0x13E
[2024-04-04 20:35:17] UWorld::ActiveLevelCollectionIndex = 0x190
[2024-04-04 20:35:17] UWorld::AudioTimeSeconds = 0x678
[2024-04-04 20:35:17] UWorld::CommittedPersistentLevelName = 0x700
[2024-04-04 20:35:17] UWorld::bInTick = 0x13B
[2024-04-04 20:35:17] UWorld::LWILastAssignedUID = 0x258
[2024-04-04 20:35:17] UWorld::CleanupWorldTag = 0x70C
[2024-04-04 20:35:17] UWorld::bTickNewlySpawned = 0x13B
[2024-04-04 20:35:17] UWorld::AuthorityGameMode = 0x150
[2024-04-04 20:35:17] UWorld::DeltaRealTimeSeconds = 0x680
[2024-04-04 20:35:17] UWorld::BuildStreamingDataTimer = 0x448
[2024-04-04 20:35:17] UWorld::bPlayersOnly = 0x13D
[2024-04-04 20:35:17] UWorld::DeltaTimeSeconds = 0x684
[2024-04-04 20:35:17] UWorld::ExtraReferencedObjects = 0x68
[2024-04-04 20:35:17] UWorld::PreparingLevelNames = 0x6F0
[2024-04-04 20:35:17] UWorld::IsInBlockTillLevelStreamingCompleted = 0x140
[2024-04-04 20:35:17] UWorld::bIsRunningConstructionScript = 0x13C
[2024-04-04 20:35:17] UWorld::bAllowDeferredPhysicsStateCreation = 0x108
[2024-04-04 20:35:17] UWorld::LastRenderTime = 0x130
[2024-04-04 20:35:17] UWorld::LastTimeUnbuiltLightingWasEncountered = 0x658
[2024-04-04 20:35:17] UWorld::bHasEverBeenInitialized = 0x13F
[2024-04-04 20:35:17] UWorld::NextSwitchCountdown = 0x6C0
[2024-04-04 20:35:17] UWorld::bMaterialParameterCollectionInstanceNeedsDeferredUpdate = 0x13F
[2024-04-04 20:35:17] UWorld::RealTimeSeconds = 0x670
[2024-04-04 20:35:17] UWorld::NextURL = 0x6E0
[2024-04-04 20:35:17] UWorld::NumStreamingLevelsBeingLoaded = 0x6DA
[2024-04-04 20:35:17] UWorld::PauseDelay = 0x688
[2024-04-04 20:35:17] UWorld::PerModuleDataObjects = 0x78
[2024-04-04 20:35:17] UWorld::bIsDefaultLevel = 0x13C
[2024-04-04 20:35:17] UWorld::PlayerNum = 0x618
[2024-04-04 20:35:17] UWorld::bAggressiveLOD = 0x13C
[2024-04-04 20:35:17] UWorld::StreamingLevelsPrefix = 0xC8
[2024-04-04 20:35:17] UWorld::bTriggerPostLoadMap = 0x13B
[2024-04-04 20:35:17] UWorld::bIsLevelStreamingFrozen = 0x13B
[2024-04-04 20:35:17] UWorld::StreamingVolumeUpdateDelay = 0x61C
[2024-04-04 20:35:17] UWorld::bIsBuilt = 0x13B
[2024-04-04 20:35:17] UWorld::TimeSeconds = 0x660
[2024-04-04 20:35:17] UWorld::UnpausedTimeSeconds = 0x668
[2024-04-04 20:35:17] UWorld::bActorsInitialized = 0x13C
[2024-04-04 20:35:17] UWorld::bIsTearingDown = 0x13D
[2024-04-04 20:35:17] UWorld::bAreConstraintsDirty = 0x13E
[2024-04-04 20:35:17] UWorld::bBegunPlay = 0x13D
[2024-04-04 20:35:17] UWorld::bDebugPauseExecution = 0x13D
[2024-04-04 20:35:17] UWorld::bDoDelayedUpdateCullDistanceVolumes = 0x13C
[2024-04-04 20:35:17] UWorld::bRequestedBlockOnAsyncLoading = 0x13C
[2024-04-04 20:35:17] UWorld::bDropDetail = 0x13C
[2024-04-04 20:35:17] UWorld::bMatchStarted = 0x13D
[2024-04-04 20:35:17] UWorld::bIsCameraMoveableWhenPaused = 0x13E
[2024-04-04 20:35:17] UWorld::bShouldSimulatePhysics = 0x13C
[2024-04-04 20:35:17] UWorld::bIsWorldInitialized = 0x13B
[2024-04-04 20:35:17] UWorld::bKismetScriptError = 0x13D
[2024-04-04 20:35:17] UWorld::bMarkedObjectsPendingKill = 0x708
[2024-04-04 20:35:17] UWorld::bWorldWasLoadedThisTick = 0x13B
[2024-04-04 20:35:17] UWorld::bPlayersOnlyPending = 0x13D
[2024-04-04 20:35:17] UWorld::bPostTickComponentUpdate = 0x13B
[2024-04-04 20:35:17] UWorld::bRequiresHitProxies = 0x13E
[2024-04-04 20:35:17] UWorld::bShouldForceUnloadStreamingLevels = 0x13E
[2024-04-04 20:35:17] UWorld::bShouldForceVisibleStreamingLevels = 0x13E
[2024-04-04 20:35:17] UWorld::bShouldTick = 0x13E
[2024-04-04 20:35:17] UWorld::bStartup = 0x13D
[2024-04-04 20:35:17] UWorld::bStreamingDataDirty = 0x13E
[2024-04-04 20:35:17] UClass::bLayoutChanging = 0xD1
[2024-04-04 20:35:17] UClass::ClassWithin = 0xE0
[2024-04-04 20:35:17] UClass::bCooked = 0xD0
[2024-04-04 20:35:17] UClass::ClassConfigName = 0xE8
[2024-04-04 20:35:17] UClass::ClassConstructor = 0xB0
[2024-04-04 20:35:17] UClass::ClassDefaultObject = 0x110
[2024-04-04 20:35:17] UClass::ClassFlags = 0xD4
[2024-04-04 20:35:17] UClass::ClassUnique = 0xC8
[2024-04-04 20:35:17] UClass::ClassVTableHelperCtorCaller = 0xB8
[2024-04-04 20:35:17] UClass::FirstOwnedClassRep = 0xCC
[2024-04-04 20:35:17] UClass::FuncMap = 0x128
[2024-04-04 20:35:17] UClass::Interfaces = 0x1D0
[2024-04-04 20:35:17] UClass::NetFields = 0x100
[2024-04-04 20:35:17] UClass::SparseClassData = 0x118
[2024-04-04 20:35:17] UClass::SparseClassDataStruct = 0x120
[2024-04-04 20:35:17] UClass::SuperFuncMap = 0x178
[2024-04-04 20:35:17] UEnum::CppForm = 0x50
[2024-04-04 20:35:17] UEnum::CppType = 0x30
[2024-04-04 20:35:17] UEnum::EnumDisplayNameFn = 0x58
[2024-04-04 20:35:17] UEnum::Names = 0x40
[2024-04-04 20:35:17] UEnum::EnumFlags_Internal = 0x54
[2024-04-04 20:35:17] UEnum::EnumPackage = 0x60
[2024-04-04 20:35:17] FObjectPropertyBase::PropertyClass = 0x78
[2024-04-04 20:35:17] FDelegateProperty::SignatureFunction = 0x78
[2024-04-04 20:35:17] FMulticastDelegateProperty::SignatureFunction = 0x78
[2024-04-04 20:35:17] FSetProperty::ElementProp = 0x78
[2024-04-04 20:35:17] FStructProperty::Struct = 0x78
[2024-04-04 20:35:17] FArrayProperty::Inner = 0x78
[2024-04-04 20:35:17] FArrayProperty::ArrayFlags = 0x80
[2024-04-04 20:35:17] FMapProperty::KeyProp = 0x78
[2024-04-04 20:35:17] FMapProperty::MapFlags = 0xA0
[2024-04-04 20:35:17] FMapProperty::ValueProp = 0x80
[2024-04-04 20:35:17] FBoolProperty::FieldMask = 0x7B
[2024-04-04 20:35:17] FBoolProperty::ByteMask = 0x7A
[2024-04-04 20:35:17] FBoolProperty::FieldSize = 0x78
[2024-04-04 20:35:17] FBoolProperty::ByteOffset = 0x79
[2024-04-04 20:35:17] FByteProperty::Enum = 0x78
[2024-04-04 20:35:17] FClassProperty::MetaClass = 0x80
[2024-04-04 20:35:17] FSoftClassProperty::MetaClass = 0x80
[2024-04-04 20:35:17] FInterfaceProperty::InterfaceClass = 0x78
[2024-04-04 20:35:17] FFieldPathProperty::PropertyClass = 0x78
[2024-04-04 20:35:17]
##### MEMBER OFFSETS END #####

[2024-04-04 20:35:17] m_shared_functions: 0x7ffbc8b63b60
[2024-04-04 20:35:17] Enabling custom events
[2024-04-04 20:35:17] Starting mods (from mods.txt load order)...
[2024-04-04 20:35:17] Starting Lua mod 'CheatManagerEnablerMod'
[2024-04-04 20:35:17] [RegisterHook] Registered native hook (1, 2) for Function /Script/Engine.PlayerController:ClientRestart
[2024-04-04 20:35:17] Starting Lua mod 'ConsoleCommandsMod'
[2024-04-04 20:35:17] Starting Lua mod 'LineTraceMod'
[2024-04-04 20:35:17] [Lua] KismetSystemLibrary: KismetSystemLibrary /Script/Engine.Default__KismetSystemLibrary
[2024-04-04 20:35:17] [Lua] KismetMathLibrary: KismetMathLibrary /Script/Engine.Default__KismetMathLibrary
[2024-04-04 20:35:17] Starting Lua mod 'BPModLoaderMod'
[2024-04-04 20:35:17] [Lua] Mods/BPModLoaderMod/load_order.txt not present or no matching mods, loading all BP mods in random order.[2024-04-04 20:35:17] Starting Lua mod 'BPML_GenericFunctions'
[2024-04-04 20:35:17] Starting mods (from enabled.txt, no defined load order)...
[2024-04-04 20:35:17] Event loop start

Desktop (please complete the following information):

OS: Windows 11.

Is there no .dmp file in the Win64 directory ?

Nope.

Nope. Might not actually be crashing, but it definitely is refusing any connection. I can't get on my server with UE4SS installed on the server at all. This wasn't a problem until the new update. Nothing has changed either. I removed all mods, still same problem.

Have you tried doing a clean reinstall of the server and then putting UE4SS on it? Also make sure it is a fresh world since you might have corrupt data if you used mods before. Doing that fixed my issues atleast and I'm able to run UE4SS and still connect.

UE4SS seems to be incredibly unstable clientside as well, has a tendency to hard-lock/freeze, but not crash.

Nope. Might not actually be crashing, but it definitely is refusing any connection. I can't get on my server with UE4SS installed on the server at all. This wasn't a problem until the new update. Nothing has changed either. I removed all mods, still same problem.

Have you tried doing a clean reinstall of the server and then putting UE4SS on it? Also make sure it is a fresh world since you might have corrupt data if you used mods before. Doing that fixed my issues atleast and I'm able to run UE4SS and still connect.

No difference.

Ive seen 10+ people with the same issue

I have tried 6 clean reinstalls and many other fixes still nothing

Unfortunately it's hard to help without a crash dump, and I don't own the game so I can't reproduce it myself.
The logs aren't displaying anything wrong.
I guess you could try uninstalling all mods that come with UE4SS, maybe one of them is causing problems for some reason.

need a crash?

i think i have 1

crash_2024_04_04_17_08_08.dmp

crash_2024_04_04_17_08_08.dmp crash_2024_04_04_17_03_25.dmp

Unfortunately these dmp files suffer from the same problem that many others do for me.
For some reason unknown to me, I can view the call stack, it just says some binary is missing, in this case KERNELBASE.dll which is weird.
This means they aren't useful in debugging this problem.

what about the thing it says its missing 0933f27e708

what about the thing it says its missing 0933f27e708

That's a memory address, and those are different for every person, so is therefore not useful in identifying the problem.
When it crashes, do you get a UE crash reporter ?
I also realized I can get PalServer using SteamCMD without owning the game so I got passed that problem too.
Now the problem is that I'm missing palguard.dll, and I don't see it anywhere in the files that I got via SteamCMD.

that might have been a previous crash before i took palgaurd off

that might have been a previous crash before i took palgaurd off

Both your crash dumps are pointing towards palguard being the source.
I don't know how much more information might be available if I had palguard.dll, but it would tell us whether the crash actually originated in palgaurd or if the code is just passing through the dll.
>	KERNELBASE.dll!RaiseException()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff79905fa78()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff79902bb20()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff796f176e1()	Unknown
 	ucrtbase.dll!_invalid_parameter_internal()	Unknown
 	ucrtbase.dll!_invalid_parameter()	Unknown
 	ucrtbase.dll!_invalid_parameter_noinfo()	Unknown
 	ucrtbase.dll!_isatty()	Unknown
 	ucrtbase.dll!__acrt_stdio_begin_temporary_buffering_nolock()	Unknown
 	ucrtbase.dll!<lambda>(void)()	Unknown
 	ucrtbase.dll!__crt_seh_guarded_call<unsigned __int64>::operator()<<lambda_a2589f19c515cac03caf6db9c38355e9>,<lambda>(void) &,<lambda_ad9ce2f38261e34e8a422b9cc35dfe8d>>()	Unknown
 	ucrtbase.dll!fwrite()	Unknown
 	msvcp140.dll!std::basic_filebuf<char,std::char_traits<char>>::xsputn(const char * _Ptr, __int64 _Count) Line 634	C++
 	[Frames may be missing, no binary loaded for palguard.dll]
 	palguard.dll!00007ff9cb664429()	Unknown

I found palguard on nexusmods, this is the full call stack for @ksumm1998 crash dump.
It doesn't seem to have anything to do with UE4SS.
Note though that as they mentioned, this might be an old crash dump so it might be unrelated to this issue.
>	KERNELBASE.dll!RaiseException()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff79905fa78()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff79902bb20()	Unknown
 	PalServer-Win64-Shipping.exe!00007ff796f176e1()	Unknown
 	ucrtbase.dll!_invalid_parameter_internal()	Unknown
 	ucrtbase.dll!_invalid_parameter()	Unknown
 	ucrtbase.dll!_invalid_parameter_noinfo()	Unknown
 	ucrtbase.dll!_isatty()	Unknown
 	ucrtbase.dll!__acrt_stdio_begin_temporary_buffering_nolock()	Unknown
 	ucrtbase.dll!<lambda>(void)()	Unknown
 	ucrtbase.dll!__crt_seh_guarded_call<unsigned __int64>::operator()<<lambda_a2589f19c515cac03caf6db9c38355e9>,<lambda>(void) &,<lambda_ad9ce2f38261e34e8a422b9cc35dfe8d>>()	Unknown
 	ucrtbase.dll!fwrite()	Unknown
 	msvcp140.dll!std::basic_filebuf<char,std::char_traits<char>>::xsputn(const char * _Ptr, __int64 _Count) Line 634	C++
 	palguard.dll!00007ff9cb664429()	Unknown
 	palguard.dll!00007ff9cb6471b7()	Unknown
 	palguard.dll!00007ff9cb6859c3()	Unknown
 	palguard.dll!00007ff9cb68061e()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

On my end, I don't have Palguard. Just UE4SS. No crash dumps, just a hard freeze.

On my end, I don't have Palguard, no other mods. Just UE4SS, on a bare server. No crash dumps, just a hard freeze.

Then I'm afraid I can't really help much unless you're willing to either:
A. Buy me the game + give me your save files.
or
B. Allow me to debug the problem remotely on your PC.
This option means me controlling your computer, as well as potentially downloading and building the UE4SS source to do some debugging.
Neither option comes with any guarantee of a fix for this problem, and for obvious reasons I prefer the first option.

On my end, I don't have Palguard, no other mods. Just UE4SS, on a bare server. No crash dumps, just a hard freeze.

Then I'm afraid I can't really help much unless you're willing to either: A. Buy me the game + give me your save files. or B. Allow me to debug the problem remotely on your PC. This option means me controlling your computer, as well as potentially downloading and building the UE4SS source to do some debugging.
Neither option comes with any guarantee of a fix for this problem, and for obvious reasons I prefer the first option.

Like I said, I can probably arrange a way to get you a copy of the game, but I need a means of contact, preferably on steam.

Also, upon further inspection, the server isn't exactly frozen. I can issue it RCON commands (this is a remotely hosted server), but it refuses connections from anyone.

On my end, I don't have Palguard, no other mods. Just UE4SS, on a bare server. No crash dumps, just a hard freeze.

Then I'm afraid I can't really help much unless you're willing to either: A. Buy me the game + give me your save files. or B. Allow me to debug the problem remotely on your PC. This option means me controlling your computer, as well as potentially downloading and building the UE4SS source to do some debugging.
Neither option comes with any guarantee of a fix for this problem, and for obvious reasons I prefer the first option.

Like I said, I can probably arrange a way to get you a copy of the game, but I need a means of contact, preferably on steam.

This is my steam profile, feel free to add: https://steamcommunity.com/id/qrecon/
Will delete this message once you've added.

BTW, I am hearing that there might be some issue relating to the Steam DLLs/Bootstrapper in some cases?

I was having this exact issue until I installed the Steam client on the server PC. It now seems to be completely resolved. Hope this info can help somehow.

Since PalGuard was mentioned: PalGuard had to make a specific update for Headless servers like GPortal. Maybe UE4SS needs to do the same?

Hello guys so i been running pal world servers for 1 to 2 months now
i always noticed the red query port in amp to be red in amp control panel, The query port would still work on battle metrics etcs
one thing i just noticed on my non modded server that i can connect to the query port IS GREEN
the non modded one as soon as i add in uess4 it turns it to red?
Apparently pal world did some update to Query port stuff i heard so maybe ITS this?

Hello guys so i been running pal world servers for 1 to 2 months now
i always noticed the red query port in amp to be red in amp control panel, The query port would still work on battle metrics etcs and i could connect to my servers fine
one thing i just noticed on my non modded server that i can connect to the query port IS GREEN
the non modded one as soon as i add in uess4 it turns it to red?
Apparently pal world did some update to Query port stuff i heard so maybe ITS this?

I've been unable to replicate the problem with the latest Palworld and server.
I can connect just fine with UE4SS 3.0.1 installed on the server as long as I have Steam installed on the computer that the server is running on.
For some reason, if I don't have Steam installed, I can't connect to my Palworld server with or without UE4SS.
According to the person that made this issue, they have a headless set up without Steam installed and they can connect without UE4SS so I suspect I'm having a different problem to them and I have to solve it before I can debug their problem.

For some reason, if I don't have Steam installed, I can't connect to my Palworld server with or without UE4SS.

There are two separate issues. One issue can be solved by either installing the steam client OR (and this is probably pretty close to what the OP did) installing the steam SDK (steamcmd app ID 1007). Install that SDK in your Binaries/Win64 directory, and you'll then be able to run a Palworld server WITHOUT UE4SS.
But then you run into the second issue - the issue this ticket is about: you won't be able to run the server WITH UE4SS. That is, until you install the actual full steam client, for some reason.

For some reason, if I don't have Steam installed, I can't connect to my Palworld server with or without UE4SS.

There are two separate issues. One issue can be solved by either installing the steam client OR (and this is probably pretty close to what the OP did) installing the steam SDK (steamcmd app ID 1007). Install that SDK in your Binaries/Win64 directory, and you'll then be able to run a Palworld server WITHOUT UE4SS.
But then you run into the second issue - the issue this ticket is about: you won't be able to run the server WITH UE4SS. That is, until you install the actual full steam client, for some reason. Hope this helps you reproduce the issue.

Yeah copying the files that came from steamcmd worked, thanks.
Idk why they're placed in the wrong location originally, but whatever, lets see if I can figure out the real problem.

For some reason, if I don't have Steam installed, I can't connect to my Palworld server with or without UE4SS.

There are two separate issues. One issue can be solved by either installing the steam client OR (and this is probably pretty close to what the OP did) installing the steam SDK (steamcmd app ID 1007). Install that SDK in your Binaries/Win64 directory, and you'll then be able to run a Palworld server WITHOUT UE4SS.
But then you run into the second issue - the issue this ticket is about: you won't be able to run the server WITH UE4SS. That is, until you install the actual full steam client, for some reason. Hope this helps you reproduce the issue.

i have installed the steam client up to where it asked me to log in, dosntt work for me on modded servers

This is caused by calling SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS) in UE4SSProgram::setup_paths.
I have no idea why this is a problem.
This happens even if we don't call AddDllDirectory at all.
Any ideas @trumank ?

This is caused by calling SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS) in UE4SSProgram::setup_paths.

We made this discovery in the discord just now too. I thought I recalled this issue coming up somewhere else recently but I can't find it now. I'm unfamiliar with how the DLL search paths work, but I've noticed similar issues on WINE but just assumed it was a WINE or game specific issue and forgot about it. Clearly this warrants a closer look.

This is caused by calling SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS) in UE4SSProgram::setup_paths.

We made this discovery in the discord just now too. I thought I recalled this issue coming up somewhere else recently but I can't find it now. I'm unfamiliar with how the DLL search paths work, but I've noticed similar issues on WINE but just assumed it was a WINE or game specific issue and forgot about it. Clearly this warrants a closer look.

Yes, and it doesn't help that the PR that added this change (#172) didn't explain why this was even needed to begin with.

Yeah copying the files that came from steamcmd worked, thanks.
Idk why they're placed in the wrong location originally, but whatever, lets see if I can figure out the real problem.
This seems to be entirely based on how your launching the server. If your calling Pal/PalServer.exe to start, then that calls the _shipping_cmd.exe from win64, and then the dll''s files are routed correctly to the _cmd.exe file. If you start the _shipping_cmd.exe file directly to launch the server (which a lot of dockerized frameworks etc do), then those dll's arent automatically found, and for some folks copying them to the win64 dir does seem to help.
Side note: that pr was due to me:
LOAD_LIBRARY_SEARCH_DEFAULT_DIRS is a combination of other sys flags, for system 32, and the users directories. The reason it was added, was so that the c++ feature of ue4ss would automatically include the dll's from the game folder.. I recall the alternative was having to manually specify the folder for the dll or something (been a while, sorry)

^ This seems to be entirely based on how your launching the server. If your calling Pal/PalServer.exe to start, then that calls the _shipping_cmd.exe from win64, and then the dll''s files are routed correctly to the _cmd.exe file. If you start the _shipping_cmd.exe file directly to launch the server (which a lot of dockerized frameworks etc do), then those dll's arent automatically found, and for some folks copying them to the win64 dir does seem to help.

For the record, I launch PalServer.exe, not the shipping exe.

Side note: that pr was due to me:
LOAD_LIBRARY_SEARCH_DEFAULT_DIRS is a combination of other sys flags, for system 32, and the users directories. The reason it was added, was so that the c++ feature of ue4ss would automatically include the dll's from the game folder.. I recall the alternative was having to manually specify the folder for the dll or something (been a while, sorry)

Perhaps so that dlls with dynamic dependencies (other dlls) don't need those dependencies to exist in the Win64 directory, and can instead be in that particular mods 'dlls' directory.

yes, that sounds exactly right. :)
For the dlls that require other dll's, sorry, should have been more explciit :P

my problem is my files are all located remotely

my problem is my files are all located remotely

Not sure I understand your problem, but there's no fix for this problem yet, so right now there's nothing you can do.
When a fix has been created, hopefully all you have to do is install the new UE4SS.dll file.

side note: using the default windows pal server (installed via steam) and ue4ss works completely fine for me. no connection issues at all. All running on my local machine.

side note: using the default windows pal server (installed via steam) and ue4ss works completely fine for me. no connection issues at all. All running on my local machine.

That's because steam itself is present. Dedicated servers usually don't have a full steam installation, usually just SteamCMD.

side note: using the default windows pal server (installed via steam) and ue4ss works completely fine for me. no connection issues at all. All running on my local machine.

This is good information but unfortunately it doesn't solve the problem for people that are unable to install via Steam.
Some server hosts might just provide the files and give no options when it comes to how those files are acquired.
People that have access to the server could maybe install via Steam but not all hosts provide that kind of access.

Yeah, this is very true.
There also seems to be a newly introduced issue with running the windows game server via proton/wine (which worked completely fine prior to this update). Wont work with or without ue4ss installed.  Wondering if that is perhaps similar to what trumank mentioned above.

side note: using the default windows pal server (installed via steam) and ue4ss works completely fine for me. no connection issues at all. All running on my local machine.

That's because steam itself is present on your machine. Dedicated servers usually don't have a full steam installation, usually just SteamCMD. This is especially so on managed services like GPortal.

so why does this not work for me  on windows server 2022 modded

Yeah, this is very true.
There also seems to be a newly introduced issue with running the windows game server via proton/wine (which worked completely fine prior to this update). Wont work with or without ue4ss installed. Wondering if that is perhaps similar to what trumank mentioned above. ~ although, not really a ue4ss issue :D

On Windows, it definitely is a UE4SS issue. Removing the API call in question fixes it. WINE might be a different issue altogether.

Yeah, this is very true.
There also seems to be a newly introduced issue with running the windows game server via proton/wine (which worked completely fine prior to this update). Wont work with or without ue4ss installed. Wondering if that is perhaps similar to what trumank mentioned above. ~ although, not really a ue4ss issue :D

On Windows, it definitely is a UE4SS issue. Removing the API call in question fixes it. WINE might be a different issue altogether.

They are talking about a different problem.

on my local Windows 11 Pro + playit gg test server, palworld+UE4SS works fine
on gportal (Windows Server 2022 (21H2)) server, the mods work, the server runs but people can't connect (noticed it when i remove the ue4ss/mods.. the effect of MergeDrops[a mod that combines loot] persist after restarting the server)

~ game just released updates, hopefully solves some of these issues :D

~ game just released updates, hopefully solves some of these issues :D

It does not, unfortunately.
Leaving this here for anyone wanting a temporary workaround: https://shadowmavericks.com/files/ShareX/UE4SS_4d65ae1_nodefaultdlldircetoriescall.zip
Caveat being, DLL mods might not work. Lua and blueprint mods should be fine, however.

~ game just released updates, hopefully solves some of these issues :D

It does not, unfortunately.
Leaving this here for anyone wanting a temporary workaround: https://shadowmavericks.com/files/ShareX/UE4SS_4d65ae1_nodefaultdlldircetoriescall.zip
Caveat being, DLL mods might not work. Lua and blueprint mods should be fine, however.

To expand on dll mods not working, the only ones that should be affected are ones that have their own dependencies in the form of dll files that need to be dynamically (automatically) loaded at runtime.
Mod creators can avoid this by statically linking if they really need to.

~ game just released updates, hopefully solves some of these issues :D

It does not, unfortunately.
Leaving this here for anyone wanting a temporary workaround: https://shadowmavericks.com/files/ShareX/UE4SS_4d65ae1_nodefaultdlldircetoriescall.zip
Caveat being, DLL mods might not work. Lua and blueprint mods should be fine, however.

thanks, workaround worked on Gportal server

~ game just released updates, hopefully solves some of these issues :D

It does not, unfortunately.
Leaving this here for anyone wanting a temporary workaround: https://shadowmavericks.com/files/ShareX/UE4SS_4d65ae1_nodefaultdlldircetoriescall.zip
Caveat being, DLL mods might not work. Lua and blueprint mods should be fine, however.

Im guessing we got zero idea why Proton broke overnight though huh 😢

I believe I've found a reasonable fix for this problem.
See #453.

The fix is now available as an experimental version here: https://github.com/UE4SS-RE/RE-UE4SS/releases/download/experimental/UE4SS_v3.0.1-39-g3320fc1.zip
If you try it, it would be appreciated if you tell us if it works.

The fix is now available as an experimental version here: https://github.com/UE4SS-RE/RE-UE4SS/releases/download/experimental/UE4SS_v3.0.1-39-g3320fc1.zip If you try it, it would be appreciated if you tell us if it works.

It's working for me on my GPortal server!

修復現在作為實驗版本提供： https: //github.com/UE4SS-RE/RE-UE4SS/releases/download/experimental/UE4SS_v3.0.1-39-g3320fc1.zip 如果您嘗試的話，將會是如果您告訴我們它是否有效，我們將不勝感激。

Sorry ,unfortunately, this version still conflicts with the stand-alone version. According to tests, an error occurs with the dll file: "dwmapi.dll". If you delete this file, the game will run, but any Mod that relies on UE4SS will not.

I'm unable to reproduce the problem.
Both PalWorld (on Steam) and PalServer (via SteamCMD) work for me.

修復現在作為實驗版本提供： https: //github.com/UE4SS-RE/RE-UE4SS/releases/download/experimental/UE4SS_v3.0.1-39-g3320fc1.zip 如果您嘗試的話，將會是如果您告訴我們它是否有效，我們將不勝感激。

Sorry ,unfortunately, this version still conflicts with the stand-alone version. According to tests, an error occurs with the dll file: "dwmapi.dll". If you delete this file, the game will run, but any Mod that relies on UE4SS will not.

Make sure you don't have a copy of the old xinput dll wrapper in there.

the fix worked for me as far as i can tell it let people in now to see if the mods actually work

I added the no food decay mod and have been chilling for an hour now, and nothing has expired yet. Looks good to me.

its working serverside but cant use creative menu

its working serverside but cant use creative menu

Any errors in UE4SS.log ?

UE4SS.log
this is what its saying now

this?

https://www.nexusmods.com/palworld/mods/703

 this?

Yeah, but I just found CreativeMenu on Nexus Mods so I think you might not need to send anything.

Update on CreativeMenu: I'm now able to reproduce the problem.
The /creativemenu command doesn't work.
I was previously using the keybind and that does work.
Will investigate to see if /creativemenu being broken is because of UE4SS or the mod itself.

UE4SS.log yes this is with the latest update

i can click on them but they dont load in while they do in single player

also thankyou for putting in all the work to help I do appreciate it

The CreativeMenu mod is failing in GetModActor:
for index, value in ipairs(ActorArray) do

It's assuming that ActorArray is a table, but it's in fact nil in this case for some reason.

@UE4SS That's some jank from Palworld when you first load into a world, I'm thinking they have some UI element stuck on the screen. As for the command being broken, that's a UE4SS issue where LogicMods don't load properly with Dedicated Servers.
It's related to PostLoadMap hook that BPModLoaderMod is using and I forgot the exact details, but the hook doesn't get called at the right time in UE4SS. I made a pretty hacky workaround for servers which loops until it successfully loads the mods.
@localcc was working on a fix, but I dunno what the status on that is.

As for the command being broken, that's a UE4SS issue where LogicMods don't load properly with Dedicated Servers.
It's related to PostLoadMap hook that BPModLoaderMod is using and I forgot the exact details, but the hook doesn't get called at the right time in UE4SS. I made a pretty hacky workaround for servers which loops until it successfully loads the mods.

I've confirmed that it works after applying your BPML changes.

Blueprint mod loading should actually be fixed by a slightly less hacky way in #454

修復現在作為實驗版本提供：https: //github.com/UE4SS-RE/RE-UE4SS/releases/download/experimental/UE4SS_v3.0.1-39-g3320fc1.zip如果您嘗試的話，將會是如果您告訴我們它是否有效，我們將不勝感激。

抱歉，不幸的是，該版本仍然與單機版本衝突。根據測試，dll檔案「dwmapi.dll」出現錯誤。如果刪除此文件，遊戲將運行，但任何依賴 UE4SS 的 Mod 都不會運行。

確保其中沒有舊的 xinput dll 包裝器的副本。

Yeah, I was checked, there has no any "xinput.dll" in my folder, but when I start the game, it just pop this window

That looks like a popup from one of your mods

這看起來像是來自您的某個模組的彈出窗口

Right? But what is puzzling is that this error will only pop up when dwmapi.dll exists in the Win64 folder. I was also dumbfounded.

dwmapi.dll is what injects UE4SS into your game, which in turn loads all of your mods. If you delete dwmapi.dll then none of your mods will be loaded. Clearly one of the mods that you have installed is causing this popup, and is very likely a C++ mod (i.e. a mod that has a main.dll file inside of it. This is not a UE4SS issue. Find the mod and find its github or nexusmods page.

dwmapi.dll 是將 UE4SS 注入到您的遊戲中，進而載入您的所有 mod。如果刪除 dwmapi.dll，則不會載入任何 mod。顯然，您安裝的 mod 之一導致了此彈出窗口，並且很可能是 C++ mod（即main.dll內部有檔案的 mod）。這不是 UE4SS 問題。找到該 mod 並找到其 github 或 nexusmods 頁面。

God damn! It turned out to be one of the mod that ignored the building restrictions! Thx bro, my Hero!


const enum: supress value comment in emitted javascript

Propose that the value comment associated with const enums be supressed when using "removeComments" flag.
TypeScript 1.4:
const enum color {red,  green, blue}
var c = color.blue;

Emitted javascript (TS 1.4):
var c = 2 /* blue */;

Change so that, with "removeComments" flag, emits:
var c=2;`

This is consistent with the goal of reducing the size of the generated code (although I'll run the javascript thru the Closure Compiler for release) and it is odd to see these enum values stand out as the only comments in the javascript.

:+1: removeComments should remove comments.

Should be a simple fix if someone wants to send a PR over

:-1: This would bring unnecessary complexity and the comments are useful for debugging. If, as you said, you're going to run it through something that's going to strip out the comments, why does it matter?

I don't think it's unreasonable or complex that emitter shouldn't add new comments when you've passed the (already-supported) --removeComments flag.

My apologies, I thought that the removeComments flag was proposed. If we already have it in place, it makes sense in that context. :+1:

pull request submitted

Fixed by #1855


Laravel Forge and Franken

Would love some feedback before making a PR. I am a Laravel forge user, so I wanted a way to automate. So, I made a worker server, which is just PHP, then opened ports 80,443 in the firewall, and did the following steps. I saved as a recipe so I can make additional servers.. will need some more work for domains, and stuff.
#!/bin/bash

# Download FrankenPHP binary
wget https://github.com/dunglas/frankenphp/releases/download/v1.0.2/frankenphp-linux-x86_64

# Create a directory for FrankenPHP configuration
cp frankenphp-linux-x86_64 frankenphp
chown forge:forge frankenphp

# Create the systemd service file
touch /etc/systemd/system/frankServer.service

# Paste the service file contents
cat << EOF > /etc/systemd/system/frankServer.service
[Unit]
Description=frankServer Caddy service
After=network.target

[Service]
User=forge
WorkingDirectory=/home/forge/
ExecStart=/home/forge/frankenphp run --config /home/forge/Caddyfile
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# Create the Caddyfile for FrankenPHP
touch /home/forge/Caddyfile

# Paste the Caddyfile content
cat << EOF > /home/forge/Caddyfile
{
    frankenphp
    order mercure after encode
    order php_server before file_server
}

# The domain name of your server
example.com {
    # Set the webroot to the public/ dir
    root * public/

    # Enable compression (optional)
    encode zstd gzip
    mercure {
       # Publisher JWT key
       publisher_jwt !ChangeThisMercureHubJWTSecretKey!
       # Subscriber JWT key
       subscriber_jwt !ChangeThisMercureHubJWTSecretKey!
    }

    # Execute PHP files in the current directory and serve assets
    php_server {
       # Required for the public/storage/ dir
       resolve_root_symlink
    }
}
EOF
chown forge:forge Caddyfile
# Grant the `net_bind_service` capability to the FrankenPHP binary
setcap 'cap_net_bind_service=+ep' /home/forge/frankenphp

# Enable the systemd service
systemctl enable frankServer

# Start the systemd service
systemctl start frankServer

You might want to review & consider the info in https://caddyserver.com/docs/running#linux-service

This is now documented in https://laravel.com/docs/10.x/octane#frankenphp.


ntr: keratinocyte proliferation

New term requested for "Keratinocyte proliferation"
as a child of "Cell proliferation" GO:0008283, also the
appropriate positive and negative regulation terms.
Suggested definition: "The multiplication or
reproduction of keratinocytes, resulting in the rapid
expansion of a cell population. Keratinocytes are
epidermal cells which synthesize keratin."
PMID: 10681561
Thanks,
Rachael.
(For O14944)
Reported by: rachhuntley
Original Ticket: "geneontology/ontology-requests/3119":https://sourceforge.net/p/geneontology/ontology-requests/3119

thanks www.movied.org


Add events that tracks a workload's status

Two possible locations to issue events:

when it is assigned a capacity in the scheduling loop.
in the job-controller when a corresponding workload is created.

/kind feature

I think we can start by providing the assigned event.
Scheduling Failed is easy to add after we have a backoff policy. Step by step.

in the job-controller when a corresponding workload is created.

Is the created event patched to job, right? @ahg-g

when it is assigned a capacity in the scheduling loop #26
in the job-controller when a corresponding workload is created. #36