Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
5013ed9
Add const qualifier to ZEntityImpl::GetID method
pavledev Dec 7, 2025
ac21339
Change ZDynamicObject::ToString parameter from ZString* to ZString& a…
pavledev Dec 7, 2025
2eaa9d2
Add filter callback support to InputWithAutocomplete and update docum…
pavledev Dec 7, 2025
0c22568
Use type registry directly in InputWithAutocomplete and add filter ca…
pavledev Dec 7, 2025
c80d53c
Show Items, Actors and Debug Channels menus independently of editor w…
pavledev Dec 7, 2025
657ea69
Add support for UTF-8 3D text rendering
pavledev Dec 7, 2025
e94f799
Fix formatting of a lambda parameter in InputWithAutocomplete call
pavledev Dec 8, 2025
be0e573
Reformat lambda parameter in InputWithAutocomplete call
pavledev Dec 8, 2025
fc322d7
Filter out outfits where m_bIsHitmanSuit is true in Actors and Assets…
pavledev Dec 8, 2025
85fa08e
Add IsEmpty method to ZString
pavledev Dec 8, 2025
b8b97c6
Remove ConvertDynamicObjectValueToString and use ZObjectRef::As<> ins…
pavledev Dec 8, 2025
04b71e6
Add Unicode text support, diacritic-insensitive search, and repositor…
pavledev Dec 8, 2025
c8388cd
Refactor Assets::EquipOutfit, Editor::EquipOutfit and Player::EquipOu…
pavledev Dec 8, 2025
1db9b37
Replace ImGui::Text("") with ImGui::Spacing()
pavledev Dec 8, 2025
b6e131f
Add ImGui::AlignTextToFramePadding() in several UI sections for consi…
pavledev Dec 8, 2025
1de2d35
Reformat lambda parameter in InputWithAutocomplete call in Player mod
pavledev Dec 8, 2025
2f5b6bb
Rename s_ActorName to s_ActorName2, s_ActorName_Substring to s_ActorN…
pavledev Dec 8, 2025
c3f126b
Rename NPC to Actor in several UI elements and variables
pavledev Dec 8, 2025
c2e1cc3
Add new fields to ZActorManager and refactor GetActorByName and GetAc…
pavledev Dec 8, 2025
0fb4ff4
Fix missing usage after renaming m_aActiveActors to m_activatedActors
pavledev Dec 8, 2025
c9cbd5f
Remove s_ContentKitManager and use Globals::ContentKitManager instead
pavledev Dec 8, 2025
2e3a3fd
Remove unused ZEntityRef variable in DrawActors
pavledev Dec 8, 2025
543ae5b
Add “Show only alive actors” and “Show only targets” filters and move…
pavledev Dec 8, 2025
ea9a730
Automatically scroll the actor list to the actor selected with the mo…
pavledev Dec 9, 2025
20bdbce
Remove redundant empty line in Editor::DrawEntityProperties
pavledev Dec 9, 2025
a51631e
Add button in Entity Properties menu to select the actor in the Actor…
pavledev Dec 9, 2025
83c211f
Fix remaining m_aActiveActors -> m_activatedActors usage
pavledev Dec 9, 2025
e5d141d
Use InputWithAutocomplete instead of InputText for actor name filteri…
pavledev Dec 9, 2025
1e2aa0a
Move CharSet Character Type combobox above the “Get Nearest Actor’s O…
pavledev Dec 9, 2025
dffd461
Rename m_CurrentlySelectedActor to m_SelectedActor in Editor mod
pavledev Dec 9, 2025
c709995
Move CharSet Character Type combobox above the "Get Nearest Actor's O…
pavledev Dec 9, 2025
ff6a0d0
Make ZGameUIManager destructor pure virtual
pavledev Dec 13, 2025
ff5b5a7
Update ZHitman5.h
pavledev Dec 13, 2025
f5c9b02
Move ICharacterCollision to ZCollision.h
pavledev Dec 13, 2025
75d1236
Include ZOutfit.h in ZHitman5.h
pavledev Dec 13, 2025
65ff5b5
Change type of m_PendingDynamicEntities from std::vector to std::unor…
pavledev Dec 13, 2025
5efc905
Add ZHM5ItemWeapon class in ZItem.h
pavledev Dec 13, 2025
2a40b7b
Remove redundant ZItemSpawner:: prefix from EPhysicsMode
pavledev Dec 13, 2025
8601cc8
Add SItemConfig and new fields to ZItemConfigDescriptor
pavledev Dec 13, 2025
899fc1c
Display inventory items, add/remove inventory items and select main w…
pavledev Dec 13, 2025
de6fd25
Add setting for editor-style freecam and update checkbox to save it
pavledev Dec 13, 2025
51b0c77
Rename CreateScene parameter from bFullyUnloadScene to bResetScene
pavledev Dec 17, 2025
f0e8563
Change ZEntitySceneContext::LoadScene return type from void to bool
pavledev Dec 17, 2025
7263010
Fix incorrect brace placement in ZEntityManager::NewUninitializedEnti…
pavledev Dec 17, 2025
465b9bf
Remove "MENU" from Debug button and window title
pavledev Dec 17, 2025
db9ef29
Update GitHub workflow
pavledev Dec 19, 2025
69bc546
Check s_LocalHitman before accessing outfit data and remove redundant…
pavledev Dec 25, 2025
f0e7d51
Implement operator[] for ZString
pavledev Dec 25, 2025
4da7ad8
Add ZRenderGraphNodeCamera and add m_pCurrentCamera property to ZRend…
pavledev Dec 25, 2025
d6a73f2
And Lock and Unlock methods to ZMutex
pavledev Dec 25, 2025
6c3c2f2
Refactor variable names in THashMap.h
pavledev Dec 25, 2025
8bc539c
Rename GetPointerHashCode to Pointer and move it to Hash.h
pavledev Dec 25, 2025
d40ed23
Add THashSet and THashSetIterator
pavledev Dec 25, 2025
bea478d
Replace m_aUnknown with m_firstResourceIndexPerPackage and add new fi…
pavledev Dec 25, 2025
2395825
Add constructors and copy constructor to ZResourcePtr
pavledev Dec 25, 2025
b9fd37e
Add GetMutex method and m_pendingUninstalls field to ZResourceManager
pavledev Dec 25, 2025
0788fde
Add UnmountPartitions method to ZPackageManagerBase
pavledev Dec 25, 2025
66277c0
Add UnmountChunk method
pavledev Dec 25, 2025
c8456df
Add hook for ZEntitySceneContext::CreateScene
pavledev Dec 25, 2025
51ef1ec
Add ZSparseBitArray
pavledev Dec 25, 2025
d587d70
Add ZRoomManager, ZRoomEntity and ZGateEntity to ZRoom.h
pavledev Dec 25, 2025
c905add
Add ZResourceManager::GetResourceIndex, ZResourceContainer::UnmountPa…
pavledev Dec 25, 2025
05d892a
Extend ImGui font glyph ranges
pavledev Dec 25, 2025
998207a
Add Outfits mod for loading/unloading outfits from other scenes and s…
pavledev Dec 25, 2025
ab7b2ed
Move ZRoomEntity and IRoomEntity below ZGateEntity
pavledev Dec 25, 2025
db4ec87
Add Rooms menu with search, visibility filters and entity selection i…
pavledev Dec 25, 2025
ee1244c
Rename loop variable from ref to s_DynamicEntity
pavledev Dec 26, 2025
de89afd
Rename scoped_lock variable from lock to s_Lock
pavledev Dec 26, 2025
b175b7c
Fix brace placement after variable declaration
pavledev Dec 26, 2025
056fc36
Replace manual lock_shared/unlock_shared with std::shared_lock
pavledev Dec 26, 2025
40f0ebb
Add support for dynamic entities for debug entities
pavledev Dec 26, 2025
6b0e60d
Set outfit name only when popup is closed and text input is empty
pavledev Dec 26, 2025
456fd01
Rename player room text and display camera room
pavledev Dec 26, 2025
6699962
Rename m_DebugChannelToVisibility to m_DebugChannelToState and m_Debu…
pavledev Dec 27, 2025
da00d62
Skip debug entity iteration and distance culling when no debug channe…
pavledev Dec 27, 2025
9eab2e1
Hook ZEngineAppCommon::GetBootScene instead of ZEntitySceneContext::L…
pavledev Dec 27, 2025
48067f2
Load scene names, code name hints and titles from JSON files instead …
pavledev Dec 27, 2025
931f36c
Refactor SMatrix JSON string formatting for readability
pavledev Dec 27, 2025
d8713a3
Add copy button for SMatrix43 properties
pavledev Dec 27, 2025
75aae9a
Rename location UI key variables and update error logging
pavledev Dec 27, 2025
dc56673
Respect Draw All Gizmos override when checking enabled debug channels
pavledev Dec 28, 2025
3a748d4
Replace room vector with map to avoid duplicate rooms
pavledev Dec 28, 2025
7517de7
Only check room and gate visibility when visibility filter is enabled
pavledev Dec 28, 2025
29eb6fe
Rename room container clear call to match new map name
pavledev Dec 28, 2025
940e032
Move room selection button outside tree node
pavledev Dec 28, 2025
0254a08
Use vector instead of map to allow duplicate room names
pavledev Dec 29, 2025
dcc6a6e
Hook ZLevelManager::StartGame instead of ZEntitySceneContext::CreateS…
pavledev Dec 29, 2025
f769ed4
Fix scene name resolution when codename hint is missing
pavledev Dec 29, 2025
cf328d6
Remove comment from m_RepositoryProps
pavledev Dec 31, 2025
699fb85
Fix logic for ItemType and PrimaryConfiguration detection
pavledev Dec 31, 2025
3e74df4
Remove unnecessary ZRepositoryID temporary when pushing repository props
pavledev Dec 31, 2025
e10896c
Improve variable naming in repository props sort comparator
pavledev Dec 31, 2025
da4417f
Fix TArray::clear resetting begin pointer instead of end
pavledev Dec 31, 2025
6f9d0cc
Implement IsEmpty for ZGuid
pavledev Dec 31, 2025
8142f32
Add std::hash specialization for ZRepositoryID
pavledev Dec 31, 2025
67f5769
Add Randomizer mod with configurable item and weapon randomization
pavledev Dec 31, 2025
3a8d73e
Fix FilterRepositoryProps to only collect weapons when actor inventor…
pavledev Dec 31, 2025
58cd96b
Fix actor inventory item replacement to always update repository ID
pavledev Dec 31, 2025
62f703b
Rename s_ItemTypes to s_IsEnabled and bind inventory category checkbo…
pavledev Dec 31, 2025
37d3207
Persist Randomizer options
pavledev Dec 31, 2025
184beb5
Set input width for spawn count fields
pavledev Jan 1, 2026
36a2489
Add tabbed UI layout to Randomizer menu
pavledev Jan 1, 2026
2b1d2e0
Rename settings section from props to props_to_spawn
pavledev Jan 1, 2026
0e61292
Fix Clear All to remove props_to_spawn entries from settings
pavledev Jan 1, 2026
6061851
Add "Props To Exclude" tab and persist excluded props in settings
pavledev Jan 1, 2026
74097b4
Refactor props_to_spawn settings cleanup loop
pavledev Jan 1, 2026
af5d1c3
Set enable_randomizer default value to true
pavledev Jan 1, 2026
d38034f
Remove setting before erasing item from list
pavledev Jan 1, 2026
f6fe92b
Allow spawning non-repository props using both resource ID and runtim…
pavledev Jan 1, 2026
226a0cf
Update README mod descriptions
pavledev Jan 1, 2026
1875c67
Rename s_EntityTreeNode to s_Iterator in Editor::EntityRefProperty
pavledev Jan 1, 2026
51818c8
Add copy buttons for remaining property types except ZString and bool
pavledev Jan 1, 2026
3d06d72
Move entity name search above type name search
pavledev Jan 1, 2026
6374c4c
Rename LoadPropsFromSettings to LoadPropsToSpawnFromSettings
pavledev Jan 1, 2026
401b6d0
Fix call after renaming LoadPropsToSpawnFromSettings
pavledev Jan 1, 2026
1fc1e21
Add LoadPropsToExcludeFromSettings
pavledev Jan 1, 2026
a8a4a6a
Fix UTF-8 text iteration and glyph counting in DrawText3D
pavledev Jan 3, 2026
7632020
Guard main weapon assignment with inventory size check
pavledev Jan 3, 2026
5da18f9
Use iterator instead of operator[] when accessing m_CachedEntityTreeM…
pavledev Jan 3, 2026
e26b995
Use GetOption to retrieve boot scene path instead of calling CallOrig…
pavledev Jan 3, 2026
910d74d
Remove unnecessary JSON resource data check
pavledev Jan 3, 2026
5ccc69e
Use iterator lookup and fallback for scene codename mapping
pavledev Jan 3, 2026
bcb376a
Rename p_OutfitsBrickRuntimeResourceId to p_OutfitBrickRuntimeResourceId
pavledev Jan 3, 2026
4b92269
Remove unused variable s_SelectedIndex
pavledev Jan 3, 2026
e59531c
Remove unnecessary JSON resource data check in Outfits::BuildSceneNam…
pavledev Jan 3, 2026
e7ea847
Add m_HitmanPFLocation field to ZHM5GridManager
pavledev Jan 4, 2026
b5a368a
Add AreaHandle::GetAreaUsageFlags function
pavledev Jan 4, 2026
91ed358
Replace character index access with ECharSetCharacterType enum values
pavledev Jan 7, 2026
a2a2783
Fix category setting lookup by lowercasing inventory category
pavledev Jan 9, 2026
336efa2
Use lowercase category names when writing category settings
pavledev Jan 9, 2026
470de40
Change INI format for stored props and exclude Gadget_Camera and Gadg…
pavledev Jan 9, 2026
1a1258b
Add ZTimeOfDayManager::SetTime and ZItemConfigDescriptor::GetHashCode…
pavledev Jan 13, 2026
2f26b2e
Convert multiple template-related types from class to struct
pavledev Jan 13, 2026
a055f76
Add template entity factory structures
pavledev Jan 13, 2026
cd53eb0
Add m_pResourceData and m_bHasCalculatedPropertyValues properties to …
pavledev Jan 13, 2026
df4ab72
Add missing offset comments to fields of entity factory classes
pavledev Jan 13, 2026
8e549aa
Add m_contractContext and SContractContext to ZContractsManager
pavledev Jan 13, 2026
243419f
Add AreAllResourcesReady virtual method to IEntityBlueprintFactory
pavledev Jan 13, 2026
9b4e569
Add missing padding to ZGeomEntity to match expected size
pavledev Jan 13, 2026
05dd3c8
Add ZLinkedEntity class
pavledev Jan 13, 2026
7bc85f8
Add morpheme entity classes
pavledev Jan 13, 2026
aa893d2
Add m_pMorphemeEntity and m_pGeomLinkedEntityInterface properties to …
pavledev Jan 13, 2026
6bf494e
Move ISavable class to ISavable.h
pavledev Jan 13, 2026
44dee85
Add missing include for ZMath.h in ZPhysics.h
pavledev Jan 13, 2026
0961ae6
Name ClearScene bool parameter bFullyUnloadScene
pavledev Jan 13, 2026
93f80ad
Add missing offset comment for padding in ZActorManager
pavledev Jan 13, 2026
60c072d
Update bitfield offsets in ZActor
pavledev Jan 13, 2026
48fd310
Add missing include for ZLinkedEntity.h in ZHM5BaseCharacter.h
pavledev Jan 13, 2026
43719a7
Add UI map classes
pavledev Jan 14, 2026
b999a37
Add ZWorldInventory class
pavledev Jan 14, 2026
c20d819
Add ZUIMapManager to Globals
pavledev Jan 14, 2026
f707326
Fix brace placement after variable declaration
pavledev Jan 14, 2026
7f25e9a
Fix outfit name display for selected actor
pavledev Jan 14, 2026
44eea5d
Remove unnecessary s_GlobalOutfitKit check from character type combobox
pavledev Jan 14, 2026
7354dd1
Add outfit and entrance randomization options and checkbox for prop r…
pavledev Jan 14, 2026
f11fdf4
Guard outfit exclusion by RandomizeOutfitsFromOtherScenes option
pavledev Jan 14, 2026
8609032
Update ZResourceContainer::UnmountPackages pattern to support Steam a…
pavledev Jan 14, 2026
faf4a3f
Rename m_Type to eBehaviorType and change its type to ECompiledBehavi…
pavledev Jan 14, 2026
dfa9249
Rename SBehaviorData to SBehaviorState, move it into ZBehaviorService…
pavledev Jan 14, 2026
ea436ee
Fix behavior type usage after ZBehaviorService and SBehaviorState ref…
pavledev Jan 14, 2026
c436632
Rename some ZActor bitfield flags, update offset comments, and rename…
pavledev Jan 14, 2026
2b2f20b
Add filters for enforcers, crowd characters, sentries and actors with…
pavledev Jan 15, 2026
6e13ad7
Remove s_TypeName parameter from TArrayProperty
pavledev Jan 15, 2026
65f8841
Rename ResourceProperty method to ResourcePtrProperty
pavledev Jan 15, 2026
c57ef44
Use functions from SArrayFunctions instead of manual array pointer ar…
pavledev Jan 16, 2026
2a7486f
Move array element rendering logic to DrawArrayElements
pavledev Jan 16, 2026
29658b4
Add missing DrawArrayElements declaration
pavledev Jan 16, 2026
dfe797e
Add ImPlot submodule and integrate it into the SDK
pavledev Jan 16, 2026
8215edb
Remove ImPlot submodule
pavledev Jan 16, 2026
0eba2a4
Re-add ImPlot submodule
pavledev Jan 16, 2026
e5661d3
Add front and back methods to TArray
pavledev Jan 16, 2026
7e5ab28
Rename s_ArrayType parameter of DrawArrayElements to p_ArrayType
pavledev Jan 16, 2026
69e5c60
Add support for ZCurve, TFixedArray, ZRuntimeResourceID, ZGuid and ZG…
pavledev Jan 16, 2026
356e3fc
Add tooltip to copy widget
pavledev Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Build
on:
push:
branches:
- master
- '**'
release:
types: [ created ]
pull_request:
Expand All @@ -12,7 +12,8 @@ on:
jobs:
build:
name: Build
runs-on: ptlm-runner
runs-on: ${{ (github.repository == 'OrfeasZ/ZHMModSDK' && 'ptlm-runner') || 'windows-latest' }}
if: github.event_name == 'pull_request' || github.event_name == 'release' || (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.repository != 'OrfeasZ/ZHMModSDK'

steps:
- name: Get latest CMake and ninja
Expand All @@ -23,6 +24,12 @@ jobs:
with:
submodules: recursive

- name: Install Rust nightly toolchain
uses: dtolnay/rust-toolchain@nightly
if: github.repository != 'OrfeasZ/ZHMModSDK'
with:
components: rust-src

- name: Setup VS environment
uses: ilammy/msvc-dev-cmd@v1
with:
Expand Down Expand Up @@ -87,7 +94,7 @@ jobs:
Copy-Item LICENSE -Destination _sdk/LICENSE

- name: Upload symbols to sentry
if: github.event_name == 'release'
if: github.repository == 'OrfeasZ/ZHMModSDK' && github.event_name == 'release'
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
Expand Down Expand Up @@ -129,7 +136,7 @@ jobs:
upload_release:
name: Upload release artifacts
needs: build
if: github.event_name == 'release'
if: github.repository == 'OrfeasZ/ZHMModSDK' && github.event_name == 'release'
runs-on: ubuntu-latest

strategy:
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "External/IconFontCppHeaders"]
path = External/IconFontCppHeaders
url = https://github.com/juliettef/IconFontCppHeaders.git
[submodule "External/implot/src"]
path = External/implot/src
url = https://github.com/epezent/implot.git
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ find_package(unofficial-imgui-node-editor CONFIG REQUIRED)
#CPMAddPackage("gh:ValveSoftware/[email protected]")
CPMAddPackage("gh:OrfeasZ/[email protected]")
#add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../ZHMTools" "${VCPKG_BUILD_ROOT}/zhmtools")
add_subdirectory(External/implot)

# Core modules.
add_subdirectory(ZHMModSDK)
Expand All @@ -51,6 +52,8 @@ set(MODS
OnlineTools
Player
Assets
Outfits
Randomizer
)

foreach (MOD IN LISTS MODS)
Expand Down
26 changes: 26 additions & 0 deletions External/implot/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.12)

add_library(implot STATIC
src/implot.cpp
src/implot.h
src/implot_demo.cpp
src/implot_internal.h
src/implot_items.cpp
)

target_include_directories(implot PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src
)

target_link_libraries(implot PUBLIC
imgui::imgui
)

set_target_properties(implot PROPERTIES
PUBLIC_HEADER "src/implot.h;"
)

install(TARGETS implot
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
1 change: 1 addition & 0 deletions External/implot/src
Submodule src added at 81b8b1
2 changes: 1 addition & 1 deletion Mods/AdvancedRating/Src/AdvancedRating.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ DEFINE_PLUGIN_DETOUR(
const ZDynamicObject& event
) {
ZString s_EventData;
Functions::ZDynamicObject_ToString->Call(const_cast<ZDynamicObject*>(&event), &s_EventData);
Functions::ZDynamicObject_ToString->Call(const_cast<ZDynamicObject*>(&event), s_EventData);

Logger::Debug("Achievement Event Sent: {} - {}", eventId, s_EventData);

Expand Down
Loading