Skip to content

Conversation

@pavledev
Copy link
Contributor

@pavledev pavledev commented Dec 13, 2025

Breaking Changes

SDK

  • ZDynamicObject::ToString now takes ZString& instead of ZString*.
  • ZEntitySceneContext::LoadScene return type is changed from void to bool.
  • m_RepositoryId in ZItemConfigDescriptor is renamed to m_ItemID.
  • Variables in THashMap.h are renamed.
  • GetPointerHashCode is renamed to Pointer and moved from THashMap.h to Hash.h.
  • m_aUnknown property in ZResourceContainer is renamed to m_firstResourceIndexPerPackage.
  • m_Type property in SBehaviorBase is renamed to eBehaviorType and it's type is changed to ECompiledBehaviorType.
  • SBehaviorData is renamed to SBehaviorState and moved into ZBehaviorService.
  • Type of m_aBehaviorStates property is changed from array to TFixedArray.
  • m_aActiveActors in ZActorManager is renamed to m_activatedActors.
  • The following bitfield flags in ZActor are renamed:
    • m_bUnk0m_bActorActivated
    • m_bUnk1m_bEnabled
    • m_bUnk2m_bAlive
    • m_bUnk8m_bHasAIIcon
    • m_bUnk16m_bContractTarget
    • m_bUnk17m_bContractTargetLive
    • m_bUnk18m_bContractTargetHidden
    • m_bUnk19m_bIsNamedNPC
    • m_bUnk20m_bNude
    • m_bUnk21m_bIsActiveEnforcer
    • m_bUnk22m_bIsPotentialEnforcer
    • m_bUnk23m_bIsDynamicEnforcer
    • m_bUnk24m_bCrowdCharacter
    • m_bUnk25m_bActiveSentry
  • m_nCurrentBehaviorIndex property in ZActor is renamed to m_nActorRuntimeId.
  • ICharacterCollision is moved from ZActor.h to ZCollision.h.
  • IComponentInterface is moved to IComponentInterface.h
  • ZItemRepositoryKeyEntity is moved to ZRepository.h
  • IEnumType is moved to Reflection.h and IEnumType.h is removed.
  • Classes and structures in ZEntity.h and Reflection.h are renamed and their fields and methods are renamed:
    • ZClassProperty is renamed to SNamedPropertyInfo
    • ZClassConstructorInfo is renamed to ZConstructorInfo
    • ZClassComponent is replaced with SBaseClassInfo and SComponentMapEntry
    • ZEnumEntry is renamed to SEnumItem
    • SArrayFunctions is renamed to SContainerTypeVTable
    • ZEntityProperty is renamed to SPropertyData
    • ZEntityInterface is renamed to SInterfaceData
    • ZPin is renamed to SPinData
  • Renamed fields in ZGameTimeManager

Editor

  • m_CurrentlySelectedActor in Editor mod is renamed to m_SelectedActor.
  • Type of m_PendingDynamicEntities is changed from std::vector to std::unordered_set.
  • m_DebugChannelToVisibility is renamed to m_DebugChannelToStateandm_DebugChannelToTypeNameToVisibilityis renamed tom_DebugChannelToTypeNameToState`
  • s_EntityTreeNode in Editor::EntityRefProperty is renamed to s_Iterator
  • s_TypeName parameter is removed from Editor::TArrayProperty method.
  • Editor::ResourceProperty method is renamed to Editor::ResourcePtrProperty.
  • s_RepositoryId variable in Editor::ZRepositoryIDProperty is renamed to s_RepositoryIdString and RepositoryId variable is renamed to s_RepositoryId.

New Features

New Mods

  • Added Outfits mod for loading/unloading outfits from other scenes and specific outfit bricks.
  • Added Randomizer mod with configurable item and weapon randomization.
  • Added World mod with option to modify game time multiplier.

SDK

  • Added UTF-8 text rendering support for 3D text.
  • Added Unicode-aware string handling and diacritic-insensitive search.
  • Add UnmountChunk method.
  • Added ImPlot.
  • Added optional filter callback to ImGuiUtils::InputWithAutocomplete.

Editor

  • Added Rooms menu with search, visibility filters and entity selection.
  • Added support for dynamic entities for debug entities.
  • Add copy buttons for remaining property types except ZString and bool.
  • Add support for ZCurve, TFixedArray, ZRuntimeResourceID, ZGuid and ZGameTime property types.
  • Added 2D curve visualization with ImPlot.
  • Implemented full actor inventory management in the Actors menu:
    • Display inventory items
    • Add and remove items
    • Select main weapon
  • Filters for alive actors, civilians, guards, male actors, female actors, targets, active enforcers, potential enforcers, dynamic enforcers, crowd characters, active sentries and actors with cloth outfit are added in Actors menu.
  • Added option to automatically scroll the actor list to the actor selected with the mouse in game.

Improvements

SDK

  • Extended ImGui font glyph ranges
  • Updated ZResourceContainer::UnmountPackages pattern to support Steam and Epic builds

FreeCam

  • Introduced editor-style freecam setting with persistent checkbox state.

DiscordRichPresence

  • Scene names, code name hints, and titles are now loaded from JSON files instead of being hardcoded.

SkipIntro

  • Hooked ZEngineAppCommon::GetBootScene instead of ZEntitySceneContext::LoadScene to avoid issues with mods that hook ZEntitySceneContext::LoadScene and receive the boot scene path before it is changed.

Editor & UI

  • Menus (Items, Actors, Debug Channels) are now independent of editor window visibility.
  • Improved alignment and layout consistency across multiple UI sections.
  • Set fixed width for spawn count input fields.
  • Added tooltip to copy widget.
  • Added colored text for invalid resource pointer and runtime resource ID.

Fixes

SDK

  • Fixed TArray::clear resetting begin pointer instead of end.
  • Fixed UTF-8 text iteration and glyph counting in DirectXTKRenderer::DrawText3D.
  • ImPlot and ImGui contexts are now destroyed on shutdown.

Editor

  • Ensured that deleted entities are removed from the pending.
  • Filtered out outfits where m_bIsHitmanSuit is true in Actors and Assets menus to prevent game crashes.
  • Fixed outfit name display for selected actor.
  • Moved Editor::OnSetPropertyValue handling to Editor::DrawEntityProperties to prevent setting property values for array elements.
  • Fixed entity tree sorting for numeric name suffixes.

SDK Additions

  • Implemented operator[] and IsEmpty methods in ZString.
  • Implemented constructors and copy constructor to ZResourcePtr.
  • Implemented IsEmpty method in ZGuid.
  • Implemented front and back methods in TArray.
  • Implemented Lock and Unlock methods in ZMutex.
  • Added std::hash specialization for ZRepositoryID.
  • Added THashSet and THashSetIterator.
  • Added ZHM5ItemWeapon in ZItem.h.
  • Added ZSparseBitArray.
  • Added ZRoomManager, ZRoomEntity and ZGateEntity to ZRoom.h.
  • Added TList and TListNode.
  • Added ZEvent, ZEvent0, ZEvent1, ZEvent2, ZEvent3, ZEvent4 and ZEventNull.
  • Added ZUIMapManager, ZUIMapConfig, ZWorldMapMetaData and ZUIMapDebug.
  • Added ZUIMapTrackerManager, ZStashPointTrackerAspect, ZGenericUIMapTrackerAspect, ZUIMapTrackerAspect and UIMapLayer.
  • Added ZWorldInventory
  • Added ZLinkedEntity
  • Added ZMorphemeEntity, ZMorphemeBaseEntity, IMorphemeEntity and SBoneAnimatorInfo.
  • Added ZContractsManager, SContractContext and SAgencyPickupInfo.
  • Added SItemConfig and new fields to ZItemConfigDescriptor.
  • Added ZRenderGraphNodeCamera and add m_pCurrentCamera property to ZRenderManager.
  • Added GetMutex virtual method and m_pendingUninstalls field to ZResourceManager.
  • Added new fields to ZActorManager.
  • Added UnmountPartitions virtual method to ZPackageManagerBase.
  • Added AreAllResourcesReady virtual method to IEntityBlueprintFactory.
  • Added m_HitmanPFLocation field to ZHM5GridManager.
  • Added STemplateEntityFactory, STemplateFactorySubEntity, SEntityTemplateProperty, SEntityTemplatePlatformSpecificProperty, SEntityTemplatePropertyOverride.
  • Added m_pMorphemeEntity and m_pGeomLinkedEntityInterface properties to ZHM5BaseCharacter
  • Added SDirectlySettableProperty and SDirectlySettablePropertyWithSetter and m_directlySettableProperties, m_directlySettablePropertiesWithSetter, m_pResourceData and m_bHasCalculatedPropertyValues fields to ZTemplateEntityFactory.
  • Added ZResourceManager::GetResourceIndex, ZResourceContainer::UnmountPackages and ZRoomManager::GetRoomFromPoint, AreaHandle::GetAreaUsageFlags, ZTimeOfDayManager::SetTime and ZItemConfigDescriptor::GetHashCode to Functions.h
  • Added hook for ZEntitySceneContext::CreateScene

…tead and remove unnecessary std::string conversion and compare ZString keys directly
…s menu when an actor entity or its sub-entity is selected
…ng and selection and move CharSet Character Type combobox above the autocomplete input
…utfit” button, change its ID to ##CharSetCharacterType3, switch to s_CurrentCharSetCharacterType3, and remove m_GlobalOutfitKit checks from the ##CharSetCharacterType2 and ##CharSetCharacterType3 comboboxes
- Rename classes, structures, and properties in ZEntity.h and Reflection.h
- Add new classes, structures, and properties in ZEntity.h and Reflection.h
- Remove IEnumType.h
- Move IComponentInterface to a separate file
- Move ZItemRepositoryKeyEntity to ZRepository.h
@pavledev pavledev changed the title Editor and SDK Update: Unicode Text, Actor Inventory, Rooms, Outfits, Randomizer, UI Refinements, and Crash Fixes SDK and Mods Update: Unicode Text, Actor Inventory, Rooms, Outfits, Randomizer, UI Refinements, and Crash Fixes Jan 22, 2026
@pavledev pavledev changed the title SDK and Mods Update: Unicode Text, Actor Inventory, Rooms, Outfits, Randomizer, UI Refinements, and Crash Fixes SDK and Mods Update: Unicode Text, Actor Inventory, Rooms, Outfits, Randomizer, World, UI Refinements, and Crash Fixes Jan 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants