Skip to content

v4.0.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@OrfeasZ OrfeasZ released this 15 Nov 16:29
· 305 commits to master since this release

⚠️ PRE-RELEASE ⚠️

NOTICE: This is a pre-release version of the mod SDK, meant to test out the new features and changes before a proper
release. Unless you're a mod developer, we'd suggest waiting for the final release.

This release brings support for the latest game update (3.240.3.0), alongside a variety of new features and
improvements.

⚠️ Breaking Changes ⚠️

⚠️ This release contains breaking changes. You will need to update your mods accordingly! ⚠️

ZString Constructor Changes

The ZString(const char*) constructor has been removed. Code using const char* variables must now use
ZString::AllocateFromCStr(myStr) or convert to std::string. String literals continue to work as before.

IRenderer Interface Changes

The DrawText2D method now requires separate horizontal and vertical alignment parameters (the last parameter was split
into two).

Glacier Hook, Function, and Type Changes

Several Glacier hooks, functions, and types have changed. Please make sure to go through any usages in your mods and update your code accordingly.

New Features

Editor Enhancements

  • Keyboard Navigation: Added keyboard selection support in entity tree.
  • Repository ID Support: Handle repository IDs in entity properties.
  • Improved Filters: Added popup with class names, search bar for entity names, and clear filters button.
  • Property Fixes: Fixed crash when getting properties on entities with no properties pointer.
  • NavKit Integration: NavKit can now be used alongside the editor to generate nav meshes for levels.
  • Dynamic & Unparented Entities: Dynamically spawned entities and entities not parented to the scene are now shown in the entity tree.
  • Added copy buttons for entity name, repository ID, and runtime resource ID.
  • Added more entity parent resource IDs to the entity properties windows.

Debug & Visualization Features

  • NavPower Support: Added navmesh loading, viewing, and chunking support.
  • Reasoning Grid Visualization: Options to draw planner areas, solid areas, colorize usage flags, connectivity, and
    penalty multipliers.
  • Gizmo Rendering: Added support for rendering debug gizmos (useful for entities that don't have a visual presence).
  • Highlight Modes: Added options to select highlight mode (lines/triangles) for selected entities.
  • 3D Depth Drawing: New OnDepthDraw3D callback for mods, which occludes drawn primitives based on depth.

Input & Controls

  • Noclip Improvements: Added proper input action bindings instead of using GetAsyncKeyState.
  • FreeCam Updates: Changed teleport binding to LCTRL / RCTRL+F6.
  • Input Event Buffering: Prevent buffered events from being processed by the game after ImGui is closed.

Crash Reporting & Stability

  • Optional Sentry Integration: Added opt-in crash reporting via Sentry. You will be prompted to configure this on first startup.
  • Startup Validation: Added additional checks during SDK startup to prevent breaking the game on major updates.
  • Mod Compatibility Checking: Prevents loading incompatible mods that haven't been updated.

New Player Mod

  • Extracted player-related functionality from DebugMod into a dedicated Player mod.
  • Display initial outfit name, character set index, and outfit variation index.
  • Fixed outfit changing logic.
  • Fixed various crashes when transitioning between scenes.
  • Added toggles for invisibility, invincibility, and infinite ammo.
  • Fixed cameras detecting Hitman when invisible.

New Assets Mod

  • Extracted assets menu from Editor into a standalone mod.
  • Improved item type detection logic.

Math & Rendering

  • Frustum & Distance Culling: Implemented view frustum and distance culling for 3D rendering.
  • DirectXTK Renderer:
    • Improve support for line, triangle, and text rendering.
    • Implemented rendering for bounding quads, triangles, meshes, and 3D text.

Online Tools

  • Dynamic Resource Loading: Added option to enable dynamic resource loading (fixes Peacock strings issue)
  • ZString Improvements: Fixed issues around ZString usage, better string handling and memory management

Other Changes

  • Fixed game crash on editor unload.
  • Fixed issue where player menu couldn't be closed.
  • Fixed ActivateRagdoll function.
  • Fixed enum property casting issues.
  • Fixed memory leaks in various systems.
  • Fixed F11 not hiding 3D SDK elements.
  • Specifying the auto_load_scene option in the SDK ini allows auto-loading a scene on game startup.

Community Contributions

This release includes contributions from: