diff --git a/redist/redist-manifests/.manifest.redist-server-preview-publicized.txt b/redist/redist-manifests/.manifest.redist-server-preview-publicized.txt
index 7bfe2d46..dae480ba 100644
--- a/redist/redist-manifests/.manifest.redist-server-preview-publicized.txt
+++ b/redist/redist-manifests/.manifest.redist-server-preview-publicized.txt
@@ -1 +1 @@
-7693749937906650523
+1412851362514894494
diff --git a/redist/redist-server-preview-publicized/Assembly-CSharp.dll b/redist/redist-server-preview-publicized/Assembly-CSharp.dll
index 3e9d91e7..5dcf8c02 100644
Binary files a/redist/redist-server-preview-publicized/Assembly-CSharp.dll and b/redist/redist-server-preview-publicized/Assembly-CSharp.dll differ
diff --git a/redist/redist-server-preview-publicized/Assembly-CSharp.xml b/redist/redist-server-preview-publicized/Assembly-CSharp.xml
index a7848c6f..9dbb1e9b 100755
--- a/redist/redist-server-preview-publicized/Assembly-CSharp.xml
+++ b/redist/redist-server-preview-publicized/Assembly-CSharp.xml
@@ -2344,6 +2344,15 @@
Unsorted list of world space generators turned-on and fueled.
+
+
+ 2026-05-11: previously, code using this called getBundle(path, true). If an asset bundle
+ matching path existed on disk it allowed customizing UI icons, but in practice nobody
+ used this (likely in part because it was undocumented). If an asset bundle *didn't*
+ exist, icons were loaded from the Resources folder. Now this returns a wrapper object
+ to load icons from the core asset bundle.
+
+
Optional parameter for error logging.
@@ -3223,6 +3232,11 @@
Flag in case levelObject is destroyed.
+
+
+ Substitute for StaticResourceRefs pointing to icons.
+
+
When placing structures that snap to grid multiple requests can come
@@ -3851,7 +3865,7 @@
*ATTEMPTS* to replace IPv4 address(es) with .
Should only be called if is enabled.
Case-by-case redaction should be preferred for performance reasons over using this function. This function
- is intended for third-party messages (e.g., BattlEye) that we don't have control over.
+ is intended for third-party messages (e.g., anti-cheat) that we don't have control over.
True if message was modified.
@@ -3876,83 +3890,9 @@
Doesn't apply if handle is currently being dragged.
-
-
- When this attribute is enabled a warning is shown in the server lobby.
- Applied to options which reduce accessibility.
-
-
-
-
- URL of a 64x64 image shown in the upper-left of the server lobby menu.
-
-
-
-
- URL of a 32x32 image shown in the server list.
-
-
-
-
- Short description underneath the server name in the server lobby menu.
-
-
-
-
- Long description in the lower-right of the server lobby menu.
-
-
-
-
- Short description underneath the server name in the server list.
-
-
-
-
- Documentation: https://docs.smartlydressedgames.com/en/stable/servers/game-server-login-tokens.html
- To generate a new token visit: https://steamcommunity.com/dev/managegameservers
-
-
-
-
- IP address, DNS name, or a web address (to perform GET request) to advertise.
-
- Servers not using Fake IP can specify just a DNS entry. This way if server's IP changes clients can rejoin.
- For example, if you own the "example.com" domain you could add an A record "myunturnedserver" pointing at
- your game server IP and set that record here "myunturnedserver.example.com".
-
- Servers using Fake IP are assigned random ports at startup, but can implement a web API endpoint to return
- the IP and port. Clients perform a GET request if this string starts with http:// or https://. The returned
- text can be an IP address or DNS name with optional query port override. (e.g., "127.0.0.1:27015")
-
- Documentation: https://docs.smartlydressedgames.com/en/stable/servers/bookmark-host.html
-
-
-
-
- If true, the server lobby warns that in-game ping may be higher than shown.
-
-
-
-
- How the server is monetized (if at all).
-
-
-
-
- Used to find overrides in json file.
-
-
-
+
- Buttons shown in the server lobby menu. For example:
- ` Links
- ` [
- ` {
- ` Message Visit our website!
- ` URL https://smartlydressedgames.com/
- ` }
- ` ]
+ Whether to enable BattlEye Anti-Cheat.
@@ -3960,11 +3900,6 @@
Whether to enable Valve Anti-Cheat.
-
-
- Whether to enable BattlEye Anti-Cheat.
-
-
Players with a ping higher than this are kicked.
@@ -4124,6 +4059,85 @@
rather than just "client disconnected."
+
+
+ When this attribute is enabled a warning is shown in the server lobby.
+ Applied to options which reduce accessibility.
+
+
+
+
+ URL of a 64x64 image shown in the upper-left of the server lobby menu.
+
+
+
+
+ URL of a 32x32 image shown in the server list.
+
+
+
+
+ Short description underneath the server name in the server lobby menu.
+
+
+
+
+ Long description in the lower-right of the server lobby menu.
+
+
+
+
+ Short description underneath the server name in the server list.
+
+
+
+
+ Documentation: https://docs.smartlydressedgames.com/en/stable/servers/game-server-login-tokens.html
+ To generate a new token visit: https://steamcommunity.com/dev/managegameservers
+
+
+
+
+ IP address, DNS name, or a web address (to perform GET request) to advertise.
+
+ Servers not using Fake IP can specify just a DNS entry. This way if server's IP changes clients can rejoin.
+ For example, if you own the "example.com" domain you could add an A record "myunturnedserver" pointing at
+ your game server IP and set that record here "myunturnedserver.example.com".
+
+ Servers using Fake IP are assigned random ports at startup, but can implement a web API endpoint to return
+ the IP and port. Clients perform a GET request if this string starts with http:// or https://. The returned
+ text can be an IP address or DNS name with optional query port override. (e.g., "127.0.0.1:27015")
+
+ Documentation: https://docs.smartlydressedgames.com/en/stable/servers/bookmark-host.html
+
+
+
+
+ If true, the server lobby warns that in-game ping may be higher than shown.
+
+
+
+
+ How the server is monetized (if at all).
+
+
+
+
+ Used to find overrides in json file.
+
+
+
+
+ Buttons shown in the server lobby menu. For example:
+ ` Links
+ ` [
+ ` {
+ ` Message Visit our website!
+ ` URL https://smartlydressedgames.com/
+ ` }
+ ` ]
+
+
Percentage [0 to 1] of item spawns to use.
@@ -6638,9 +6652,9 @@
Client providing Steam login token.
-
+
- Client sending BattlEye payload to server.
+ Client sending thirdparty anti-cheat payload to server.
@@ -7038,6 +7052,16 @@
Moves highlighting plugin dependency out of SDK release.
+
+
+ Name shown in the main menu.
+
+
+
+
+ Author name shown in the main menu.
+
+
Actual unfiltered text.
@@ -7091,21 +7115,6 @@
Path to directory containing "Editor", "Menu", "Player", "Curse_Words.txt", etc files.
-
-
- Called clientside by BattlEye when it needs us to send a packet to the server.
-
-
-
-
- Event for plugins when BattlEye wants to kick a player.
-
-
-
-
- Called serverside by BattlEye when it needs us to send a packet to a player.
-
-
Call whenever something impacting rich presence changes for example loading a server or changing lobbies.
@@ -7126,9 +7135,9 @@
Set after initial response is received.
-
+
- On client, is current server protected by BattlEye?
+ On client, is current server protected by thirdparty anti-cheat?
Set after initial response is received.
@@ -7303,10 +7312,10 @@
Set on clients after initial response is received.
-
+
- Set on the server when initializing BattlEye API.
- Used to notify pending clients whether BE is active.
+ Set on the server when initializing thirdparty anti-cheat API.
+ Used to notify pending clients whether thirdparty anti-cheat is active.
Set on clients after initial response is received.
@@ -7478,6 +7487,11 @@
If hosting a server, get the game traffic port.
+
+
+ Non-null if this is a custom build of the game.
+
+
Populated when parsing modeConfigData. Level overrides check whether a property is overridden here before applying.
@@ -7638,6 +7652,21 @@
If specified, all Steam achievements are unlocked during startup.
+
+
+ Called clientside by BattlEye when it needs us to send a packet to the server.
+
+
+
+
+ Event for plugins when BattlEye wants to kick a player.
+
+
+
+
+ Called serverside by BattlEye when it needs us to send a packet to a player.
+
+
Render character with hair and skin otherwise it might be cyan.
@@ -7810,6 +7839,11 @@
Unlike format, this returns string.Empty if key doesn't exist.
+
+
+ If active language is not English always reads from English fallback.
+
+
List of all loaded blueprints potentially craftable by player. Updated when assets are refreshed. This
@@ -7887,6 +7921,17 @@
This overload doesn't support legacy Condition_# format.
+
+
+ Each quality tier has different rarities.
+ Legendary: 5% Epic: 20% Rare: 75%
+
+
+
+
+ Each item has an equal chance regardless of quality.
+
+
Can be added to any GameObject to receive text chat events.
@@ -7948,17 +7993,6 @@
Invoked when a player message passes the filters.
-
-
- Each quality tier has different rarities.
- Legendary: 5% Epic: 20% Rare: 75%
-
-
-
-
- Each item has an equal chance regardless of quality.
-
-
Determines how to handle a server if it matches a rule.
@@ -11393,9 +11427,9 @@
Allows foreach loop to iterate Vector2Int within RegionBoundsInt.
-
+
- Not an actual Steam ID or BattlEye ID, instead this is used to map player references to and from BE.
+ Not an actual external ID, instead this is used to map player references to and from thirdparty anti-cheat systems.
@@ -13691,9 +13725,9 @@
VAC status advertised on server list does not match during connect.
-
+
- BattlEye status advertised on server list does not match during connect.
+ Third-party anti-cheat status advertised on server list does not match during connect.
@@ -13743,6 +13777,16 @@
(public issue #5001)
+
+
+ Provider.GetModInfo().Name did not match between client and server.
+
+
+
+
+ Provider.GetModInfo().Version did not match between client and server.
+
+
Nelson 2024-10-18: Moved to a constant because clients need this value for footsteps and they don't have the
@@ -15583,6 +15627,11 @@
Called on the client to notify the server of admin usage changes (if any).
+
+
+ Older versions had a console command to request enabling this. It's only kept in case plugins were setting it.
+
+
Teleport to a random player spawn designated in the level.
@@ -16035,6 +16084,12 @@
Auto-registering list of volume manager subclasses for level editor.
+
+
+ Note: some caller code (e.g., getWaterSurfaceElevation) assumes this returns all results
+ on the Y axis. (I.e., that regionalVolumes only sorts on the XZ plane.)
+
+
Called in play mode if level has asserted that volumes do not move.
@@ -18020,6 +18075,16 @@
Used in a test scene to quickly test UI Toolkit implementation.
+
+
+ See Bundles.getIconsBundle.
+
+
+
+
+ In practice, T is a Texture2D or a Sprite.
+
+
Is the application running as a headless server?
@@ -19144,6 +19209,16 @@
(public issue #5001)
+
+
+ Provider.GetModInfo().Name did not match between client and server.
+
+
+
+
+ Provider.GetModInfo().Version did not match between client and server.
+
+
Can be added to Vehicle GameObject to receive events.
@@ -20470,9 +20545,9 @@
Should be converted to an RPC. Leftover from prior to net messaging code.
-
+
- Server sending BattlEye payload to client.
+ Server sending thirdparty anti-cheat payload to client.
@@ -20866,6 +20941,12 @@
If set, we are responsible for destroying texture.
+
+
+ The main/entry scene was originally called "Setup" in the same folder as other scenes
+ but has been moved to the project root and renamed "GameStartup" to be easier to find.
+
+
Is a point safely within the level bounds?
@@ -22145,6 +22226,11 @@
Not called on dedicated server.
+
+
+ Moved out of constructor so that it can access Provider.steamAppInstallDirectory.
+
+
Response data from IInventoryService GetInventory web API.
diff --git a/redist/redist-server-preview-publicized/RocketModFix.Unturned.Redist.Server.nuspec b/redist/redist-server-preview-publicized/RocketModFix.Unturned.Redist.Server.nuspec
index 34f52c4c..bb0a5bb7 100644
--- a/redist/redist-server-preview-publicized/RocketModFix.Unturned.Redist.Server.nuspec
+++ b/redist/redist-server-preview-publicized/RocketModFix.Unturned.Redist.Server.nuspec
@@ -2,7 +2,7 @@
RocketModFix.Unturned.Redist.Server.Publicized
- 3.26.3.2
+ 3.26.4.100
Unturned 3 Server-side redistributables. Standalone and always up-to-date.
diff --git a/redist/redist-server-preview-publicized/SDG.Glazier.Runtime.dll b/redist/redist-server-preview-publicized/SDG.Glazier.Runtime.dll
index 0605835f..7ea2fd00 100755
Binary files a/redist/redist-server-preview-publicized/SDG.Glazier.Runtime.dll and b/redist/redist-server-preview-publicized/SDG.Glazier.Runtime.dll differ
diff --git a/redist/redist-server-preview-publicized/SDG.HostBans.Runtime.dll b/redist/redist-server-preview-publicized/SDG.HostBans.Runtime.dll
index 086eda13..ec744b69 100755
Binary files a/redist/redist-server-preview-publicized/SDG.HostBans.Runtime.dll and b/redist/redist-server-preview-publicized/SDG.HostBans.Runtime.dll differ
diff --git a/redist/redist-server-preview-publicized/SDG.NetPak.Runtime.dll b/redist/redist-server-preview-publicized/SDG.NetPak.Runtime.dll
index 1b51545b..10e7aaa1 100755
Binary files a/redist/redist-server-preview-publicized/SDG.NetPak.Runtime.dll and b/redist/redist-server-preview-publicized/SDG.NetPak.Runtime.dll differ
diff --git a/redist/redist-server-preview-publicized/SDG.NetTransport.dll b/redist/redist-server-preview-publicized/SDG.NetTransport.dll
index 525ecf57..7688c3e0 100755
Binary files a/redist/redist-server-preview-publicized/SDG.NetTransport.dll and b/redist/redist-server-preview-publicized/SDG.NetTransport.dll differ
diff --git a/redist/redist-server-preview-publicized/SystemEx.dll b/redist/redist-server-preview-publicized/SystemEx.dll
index 3f5525dd..a8b87cb0 100755
Binary files a/redist/redist-server-preview-publicized/SystemEx.dll and b/redist/redist-server-preview-publicized/SystemEx.dll differ
diff --git a/redist/redist-server-preview-publicized/UnityEx.dll b/redist/redist-server-preview-publicized/UnityEx.dll
index ee939c85..85b7118f 100755
Binary files a/redist/redist-server-preview-publicized/UnityEx.dll and b/redist/redist-server-preview-publicized/UnityEx.dll differ
diff --git a/redist/redist-server-preview-publicized/UnturnedDat.dll b/redist/redist-server-preview-publicized/UnturnedDat.dll
index 9e88e3bf..4325b410 100755
Binary files a/redist/redist-server-preview-publicized/UnturnedDat.dll and b/redist/redist-server-preview-publicized/UnturnedDat.dll differ
diff --git a/redist/redist-server-preview-publicized/com.rlabrecque.steamworks.net.dll b/redist/redist-server-preview-publicized/com.rlabrecque.steamworks.net.dll
index 6e69c403..efd83c17 100755
Binary files a/redist/redist-server-preview-publicized/com.rlabrecque.steamworks.net.dll and b/redist/redist-server-preview-publicized/com.rlabrecque.steamworks.net.dll differ
diff --git a/redist/redist-server-preview-publicized/manifest.sha256.json b/redist/redist-server-preview-publicized/manifest.sha256.json
index 7c648046..738aff85 100644
--- a/redist/redist-server-preview-publicized/manifest.sha256.json
+++ b/redist/redist-server-preview-publicized/manifest.sha256.json
@@ -1,13 +1,13 @@
{
+ "SDG.HostBans.Runtime.dll": "083179133b7729f481197773ef62a06f2a6b810fe6bebe55aa7fe81a57e945d7",
+ "SDG.Glazier.Runtime.dll": "4b6f6da20222b90cefc09a73d55949d57d65014b880409e7cd95e64f8171e6ef",
"SDG.NetPak.Runtime.xml": "f9592fc449fbf9564e4d5d6b28d2d6c9cda75e94bc38250e65c1a1ff064aad11",
- "Assembly-CSharp.dll": "cb54c82d7df59131c4374ed70a90299395a6542915b717246d4d6d2acc33e321",
- "SDG.NetPak.Runtime.dll": "799131e9bc61cb5ce8e8bbb7096db7428e8c7432272e6983b6d7d5b7dbf1c2f2",
- "SDG.Glazier.Runtime.dll": "1499cf8f7361ca68146e1f19b73795ad3ff528d30bf2f9097028954e7cf66362",
- "SystemEx.dll": "4accc7ec3aa94c42de3cc3558dede4f9dccc64d4026d487df1286d4c4edf3035",
- "UnityEx.dll": "793daecc3ed73fa83e73b40565df1bc9694bbe69975ab02d62e4e07d1daeb7c4",
- "SDG.NetTransport.dll": "b47c089ec3593bd0489bb31392c1cced376d477c64fd2404c556ead51cbed5f0",
- "UnturnedDat.dll": "edc458f6591fb75f8b6e2d45c5108e1c4e6d298f4f632e0159f28b34e3b5b4c9",
- "SDG.HostBans.Runtime.dll": "a2c01b9c771cad7e8d744dc19e2480cf2b72ff0f460158133df7fd9c27acba09",
- "Assembly-CSharp.xml": "e6c170253d855b05292391b01bf6242fa659465ef9ca3c27bada4cf9502b751f",
- "com.rlabrecque.steamworks.net.dll": "3676041ec1ed556b412c1a1a0915b889cca7177bfa776756a4e6295d89413143"
+ "SDG.NetTransport.dll": "83611bdf55f36faaefd25a9028e38a392742251bb64edadf9c69d775ec51e078",
+ "SystemEx.dll": "a62efe0c711447745f82ecff9d7e24b290db1d19c67e7cd5a3a51d05905e576e",
+ "SDG.NetPak.Runtime.dll": "0a99def8dcc2f26bac93ae195a6196da824ccf402a6d4dd41d595952af195fc5",
+ "Assembly-CSharp.dll": "6416b6ebdf1c2e31ec06df87a3753b4404d6f4eb39bf49cc0164f746fe18cac0",
+ "Assembly-CSharp.xml": "73bd1a9ef4d882e28e1b8a8f0218219fe6c25c5059fcce323607eff7fb4f80da",
+ "com.rlabrecque.steamworks.net.dll": "3eb58a99a996e1a20691da2fc92bee7dcedd572583ec6382a0a5c4f59b054879",
+ "UnityEx.dll": "e36a0de976d318b0d8485c8e46353b7bd695cbc99157a2f714f12384fc97d343",
+ "UnturnedDat.dll": "5fbc5ec6ab75097d4a27c53368f70f96054eed34759c8eb023110bc904974184"
}
\ No newline at end of file
diff --git a/redist/redist-server-preview-publicized/version.json b/redist/redist-server-preview-publicized/version.json
index b7b0f402..d17179b0 100644
--- a/redist/redist-server-preview-publicized/version.json
+++ b/redist/redist-server-preview-publicized/version.json
@@ -1,7 +1,7 @@
{
- "GameVersion": "3.26.3.2",
- "BuildId": "23133825",
- "NuGetVersion": "3.26.3.2",
- "FilesHash": "88BD45C711C50F84170533B68593A085AC3C6C60DB10EBBD2F9AE090D4032C3A",
- "LastUpdated": "2026-05-07T19:00:14.2681362Z"
+ "GameVersion": "3.26.4.100",
+ "BuildId": "23479291",
+ "NuGetVersion": "3.26.4.100",
+ "FilesHash": "C9AC59C8F722715BF6DA68993D5B093ED6509F6EB273AE81742BC8231E6C6111",
+ "LastUpdated": "2026-05-29T22:51:54.4219731Z"
}
\ No newline at end of file