Update 0.1.4: Difference between revisions

From Wiki G1R-MP G1 Remake Multiplayer
Jump to navigation Jump to search
Document 0.1.4 safe os.time, resource security and PNG/WebP support
0.1.4 BUILD134: Reflex and DLSS disabled by default, including existing installations
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Update 0.1.4 =
= Update 0.1.4 =
'''Status: in development. The public release remains 0.1.3. This page documents the next version, not an updater rollout.'''
'''Released: 0.1.4 / BUILD134 / Protocol 36.''' [https://g1r-mp.com/download/ Download the Windows client and Windows/Linux dedicated servers]. Update both client and server; Protocol 35 peers are not compatible. Back up server configuration, database and resource data before upgrading. Merge the updated resources without replacing your credentials, keys, maps or .storage.


== MySQL recovery ==
== MySQL recovery ==
Line 11: Line 11:
* Character saves no longer treat queue acceptance as successful persistence.
* Character saves no longer treat queue acceptance as successful persistence.


See [[MySQL connection recovery]] for examples, limitations and test cases. Existing 0.1.3 servers do not expose the new functions or event; update the dedicated server before using these scripts. This database change does not alter network protocol 35.
See [[MySQL connection recovery]] for examples, limitations and test cases. Existing 0.1.3 servers do not expose the new functions or event; update the dedicated server before using these scripts. The complete 0.1.4 release uses Protocol 36.


[[Category:Lua API]]
[[Category:Lua API]]
Line 21: Line 21:
* [[Mouse capture]]: resource-owned relative motion and look-only capture for camera scripts.
* [[Mouse capture]]: resource-owned relative motion and look-only capture for camera scripts.
* [[UpdateCameraPose]]: latest-value camera streaming.
* [[UpdateCameraPose]]: latest-value camera streaming.
These changes require the current 0.1.4 development client and updated server. This is not a public updater rollout.
These changes require the 0.1.4 client and updated server.
<!-- weapon-mouse014:end -->
<!-- weapon-mouse014:end -->


Line 29: Line 29:
* [[Map scene deployment]]: Export Lua to map_scene, per-client static scene reconstruction and late-join loading. Live editing remains private; Save is not deployment.
* [[Map scene deployment]]: Export Lua to map_scene, per-client static scene reconstruction and late-join loading. Live editing remains private; Save is not deployment.
* New client API: [[WorldObjects.request]], [[onClientWorldObjectResult]], [[onClientWorldObjectsReset]].
* New client API: [[WorldObjects.request]], [[onClientWorldObjectResult]], [[onClientWorldObjectsReset]].
* BUILD124 capacity revision: removed fixed 512 native / 500 editor-loader object counts, 32 pending requests and 80 requests/second checks. Updated client and editor/scene scripts required; the server executable is unchanged. JSON/document bounds and bounded IPC backpressure remain; see [[Scripting limits]] and [[World objects]].
* BUILD124 capacity revision: removed fixed 512 native / 500 editor-loader object counts, 32 pending requests and 80 requests/second checks. Updated client and editor/scene scripts required. For the official 0.1.4 release, update the server executable as well (Protocol 36). JSON/document bounds and bounded IPC backpressure remain; see [[Scripting limits]] and [[World objects]].
* New server storage functions: [[readResourceData]], [[writeResourceData]], [[writeResourceText]].
* New server storage functions: [[readResourceData]], [[writeResourceData]], [[writeResourceText]].
* Resource-local [[MapEditor helpers]]: [[MapEditor.CreateObject]], [[MapEditor.DeleteObject]], [[MapEditor.SetTransform]], [[MapEditor.GetObjects]]. These are not engine globals.
* Resource-local [[MapEditor helpers]]: [[MapEditor.CreateObject]], [[MapEditor.DeleteObject]], [[MapEditor.SetTransform]], [[MapEditor.GetObjects]]. These are not engine globals.
* [[setMouseCapture]] gains optional exclusiveInput (default false), for fly-camera character-input suppression; existing one-argument calls retain look-only behavior.
* [[setMouseCapture]] gains optional exclusiveInput (default false), for fly-camera character-input suppression; existing one-argument calls retain look-only behavior.
All above are since 0.1.4, in development; not available in public 0.1.3. See [[World objects]] and [[Resource data storage]] for limits. Existing [[Weapon control]], [[MySQL connection recovery]] and [[UpdateCameraPose]] additions remain documented above.
All above are available since 0.1.4; not available in 0.1.3. See [[World objects]] and [[Resource data storage]] for limits. Existing [[Weapon control]], [[MySQL connection recovery]] and [[UpdateCameraPose]] additions remain documented above.
<!-- map-editor014:end -->
<!-- map-editor014:end -->


Line 41: Line 41:
* '''Since 0.1.4 BUILD125:''' [[RmlUi images|static WebP images]] (lossy/lossless, including transparency) in the existing RML/RCSS image path. Existing PNG support remains. Animated WebP is rejected; no new Lua function or external codec installation is required.
* '''Since 0.1.4 BUILD125:''' [[RmlUi images|static WebP images]] (lossy/lossless, including transparency) in the existing RML/RCSS image path. Existing PNG support remains. Animated WebP is rejected; no new Lua function or external codec installation is required.
* '''BUILD126 security hardening:''' shared resource extension/path policy, renamed native-executable header rejection, official HTTPS catalog-revision pinning, resource-owned verified GUI file access, and bounded TGA validation.
* '''BUILD126 security hardening:''' shared resource extension/path policy, renamed native-executable header rejection, official HTTPS catalog-revision pinning, resource-owned verified GUI file access, and bounded TGA validation.
See [[Scripting limits]] for the allowlist, boundaries and migration notes, and [[RmlUi images]] for PNG/WebP examples. These are 0.1.4 development features, not a public updater rollout; the public release remains 0.1.3.
See [[Scripting limits]] for the allowlist, boundaries and migration notes, and [[RmlUi images]] for PNG/WebP examples. These features are included in the public 0.1.4 release.
<!-- safe-time-webp014:end -->
<!-- safe-time-webp014:end -->
<!-- animations014:start -->
== Expanded player animations ==
'''Since 0.1.4 BUILD127:''' 91 additional animations, '''118 total''', confirmed working in-game by the project owner.
* 35 new work/training animations: smithing, mining/digging, woodcutting, rice work, cooking, repairs, cleaning, tanning, carving and training.
* 19 new rest animations: chairs/thrones, sitting/listening, ground/bed sleep, sleeping at a table and standing rest.
* 19 daily activities and 18 poses/gestures, including reading, eating, drinking, lute playing, washing and concert poses.
* New server Lua functions: [[getPlayerAnimationNames]] and [[getPlayerAnimationInfo]]. Existing [[startAnim]]/[[stopAnim]] signatures and the original 27 IDs are unchanged.
* New controlled visual playback and owned cosmetic prop cleanup; furniture/workstations are placed separately. This does not grant crafting rewards or consume inventory items.
See the complete [[Player animation catalog]] for exact aliases, modes, examples and limits. Both the 0.1.4 client and server are required.
<!-- animations014:end -->
<!-- nvidia-compat132:start -->
== Default NVIDIA compatibility policy (BUILD134) ==
BUILD134 disables NVIDIA Reflex/Boost, DLSS upscaling/DLAA and DLSS Frame Generation by default before launch. Existing BUILD132/133 settings migrate to the new default once. Game INI changes are backed up; non-DLSS upscalers and unrelated settings are preserved. This addresses a reported Reflex-related crash; the separate benefit of disabling DLSS is untested, and this is not a guarantee against all GPU crashes. See [[Known issues]] for settings, migration, persistent changes and undo. This client-only hotfix keeps version 0.1.4 and Protocol 36; the already released 0.1.4 / Protocol 36 servers do not need replacing.
<!-- nvidia-compat132:end -->
== Remote event security ==
New server function [[getEventClient]] identifies the authenticated initiating player across synchronous nested events and command bridges. Direct remote events no longer expose the client's claimed resource as a trusted sourceResource. Update custom handlers that authorize by sourceResource.name; validate sender, session, permissions and gameplay state on the server. See [[getEventClient]] for migration and asynchronous-callback limitations. Bundled chat, GothicRP and map editor resources are updated together.
== Launcher and packages ==
* Cyrillic server titles use Noto Serif while other titles retain Boucherie Block; the password/join panel layout is corrected.
* Windows binaries are signed. Signatures provide publisher/integrity evidence, not a guarantee against antivirus false positives or warnings on other computers.
* Windows and Linux server packages include map_editor and map_scene. These optional resources are not auto-started. See [[Map editor]] and [[Map scene deployment]] for permissions, saved maps and deployment.

Latest revision as of 20:54, 21 September 2026

Update 0.1.4

Released: 0.1.4 / BUILD134 / Protocol 36. Download the Windows client and Windows/Linux dedicated servers. Update both client and server; Protocol 35 peers are not compatible. Back up server configuration, database and resource data before upgrading. Merge the updated resources without replacing your credentials, keys, maps or .storage.

MySQL recovery

  • dbConnect gains the opt-in autoreconnect=true option (default false).
  • New server functions: dbReconnect and dbGetConnectionState.
  • New server event: onDatabaseConnectionStateChange.
  • Background reconnect with backoff, generation tracking, idle health checks and resource ownership.
  • No automatic SQL replay; interrupted transactions/session-control operations require explicit recovery.
  • gothic_rp reconnects after runtime loss without replaying startup initialization; uncertain COMMIT results are reconciled using transaction receipts.
  • Character saves no longer treat queue acceptance as successful persistence.

See MySQL connection recovery for examples, limitations and test cases. Existing 0.1.3 servers do not expose the new functions or event; update the dedicated server before using these scripts. The complete 0.1.4 release uses Protocol 36.

Weapon requests and mouse capture

  • Weapon control: independent melee/ranged confirmation, getPlayerWeaponState and onPlayerWeaponChangeResult.
  • Weapon clearing: native slot and carry-visual cleanup, server confirmation and empty replication/late-join state; subsequent manual equipment changes remain allowed. No new Lua signatures are introduced by these corrections.
  • Mouse capture: resource-owned relative motion and look-only capture for camera scripts.
  • UpdateCameraPose: latest-value camera streaming.

These changes require the 0.1.4 client and updated server.

Lua Map Editor and static map deployment

All above are available since 0.1.4; not available in 0.1.3. See World objects and Resource data storage for limits. Existing Weapon control, MySQL connection recovery and UpdateCameraPose additions remain documented above.

Safe time, resource security and WebP

  • Since 0.1.4 BUILD126: new shared function os.time(), for Unix seconds and ordinary random seeding. No arguments are accepted. Only this function is exposed in the restricted os table; os.execute and all other OS-library functions remain unavailable.
  • Since 0.1.4 BUILD125: static WebP images (lossy/lossless, including transparency) in the existing RML/RCSS image path. Existing PNG support remains. Animated WebP is rejected; no new Lua function or external codec installation is required.
  • BUILD126 security hardening: shared resource extension/path policy, renamed native-executable header rejection, official HTTPS catalog-revision pinning, resource-owned verified GUI file access, and bounded TGA validation.

See Scripting limits for the allowlist, boundaries and migration notes, and RmlUi images for PNG/WebP examples. These features are included in the public 0.1.4 release.

Expanded player animations

Since 0.1.4 BUILD127: 91 additional animations, 118 total, confirmed working in-game by the project owner.

  • 35 new work/training animations: smithing, mining/digging, woodcutting, rice work, cooking, repairs, cleaning, tanning, carving and training.
  • 19 new rest animations: chairs/thrones, sitting/listening, ground/bed sleep, sleeping at a table and standing rest.
  • 19 daily activities and 18 poses/gestures, including reading, eating, drinking, lute playing, washing and concert poses.
  • New server Lua functions: getPlayerAnimationNames and getPlayerAnimationInfo. Existing startAnim/stopAnim signatures and the original 27 IDs are unchanged.
  • New controlled visual playback and owned cosmetic prop cleanup; furniture/workstations are placed separately. This does not grant crafting rewards or consume inventory items.

See the complete Player animation catalog for exact aliases, modes, examples and limits. Both the 0.1.4 client and server are required.

Default NVIDIA compatibility policy (BUILD134)

BUILD134 disables NVIDIA Reflex/Boost, DLSS upscaling/DLAA and DLSS Frame Generation by default before launch. Existing BUILD132/133 settings migrate to the new default once. Game INI changes are backed up; non-DLSS upscalers and unrelated settings are preserved. This addresses a reported Reflex-related crash; the separate benefit of disabling DLSS is untested, and this is not a guarantee against all GPU crashes. See Known issues for settings, migration, persistent changes and undo. This client-only hotfix keeps version 0.1.4 and Protocol 36; the already released 0.1.4 / Protocol 36 servers do not need replacing.

Remote event security

New server function getEventClient identifies the authenticated initiating player across synchronous nested events and command bridges. Direct remote events no longer expose the client's claimed resource as a trusted sourceResource. Update custom handlers that authorize by sourceResource.name; validate sender, session, permissions and gameplay state on the server. See getEventClient for migration and asynchronous-callback limitations. Bundled chat, GothicRP and map editor resources are updated together.

Launcher and packages

  • Cyrillic server titles use Noto Serif while other titles retain Boucherie Block; the password/join panel layout is corrected.
  • Windows binaries are signed. Signatures provide publisher/integrity evidence, not a guarantee against antivirus false positives or warnings on other computers.
  • Windows and Linux server packages include map_editor and map_scene. These optional resources are not auto-started. See Map editor and Map scene deployment for permissions, saved maps and deployment.