-
Deprecated
unrealsdk.hooks.inject_next_call
in favour of a newunrealsdk.hooks.prevent_hooking_direct_calls
context manager. -
The
WeakPointer
constructor can now be called with no args, to create a null pointer. -
As with unrealsdk, reworked the configuration system to no longer rely on environment variables. All sdk configuration is now also done through the
unrealsdk.toml
.The full contents of the unrealsdk config are parsed and exposed to Python in
unrealsdk.config
.
-
Fixed weak pointer type hinting to allow for null pointers. This always worked at runtime.
-
Added support for Delegate and Multicast Delegate properties.
-
Added a repr to
BoundFunction
, as these are now returned by delegates. -
The
WrappedStruct
constructor can now be used to construct function arg structs, like what's passed to a hook. This does not also apply tounrealsdk.make_struct
, since function names conflict far more often. -
Removed the suggestion to return
Ellipsis
in hooks when overwriting a return value but not blocking execution. This still works at runtime, but is no longer present in the type hinting, since it madeEllipsis
be typed as a valid return in several places it shouldn't have been, and it's an obscure use case to begin with.
For reference, the unrealsdk v1.4.0 changes this includes are:
Fixed that UE3
WeakPointer
s would always return null, due to an incorrect offset in theUObject
header layout.Added support for Delegate and Multicast Delegate properties.
Changed
unrealsdk::hook_manager::log_all_calls
to write to a dedicated file.Fixed missing all
CallFunction
based hooks in TPS - notably including the say bypass.Added the offline mode say crash fix for BL2+TPS as a base sdk hook.
Also see the unrealsdk v1.3.0 changelog here.
-
Added bindings for the new classes introduced in unrealsdk v1.3.0 -
WeakPointer
,ULazyObjectProperty
,USoftObjectProperty
, andUSoftClassProperty
-
Fixed that hooks could not always be removed after adding, or that they might not always fire.
Also see the unrealsdk v1.2.0 changelog here.
-
Added bindings for the new classes introduced in unrealsdk v1.2.0 -
UByteAttributeProperty
,UComponentProperty
,UFloatAttributeProperty
,UIntAttributeProperty
, andUByteProperty::Enum
. -
Getting a byte property which has an associated enum will now return the appropriate Python enum, in the same way as an enum property does. Byte properties without an enum still return an int.
-
Fixed that it was impossible to set Python properties on unreal objects.
-
Changed the log level specific printers,
unrealsdk.logging.error
et al., to each use their own, logger objects rather than modifyingsys.stdout
in place. -
Added the
PYUNREALSDK_PYEXEC_ROOT
env var to let you customize wherepyexec
commands are run relative to. -
Fixed that a fully qualified
unrealsdk.find_class
would not allow subclasses. This was most notable with blueprint generated classes. -
Updated various docstrings and type stubs to be more accurately.
-
Restructured CMake to allow you to define the Python version to link against directly within it, similarly to unrealsdk.
set(UNREALSDK_ARCH x64) set(UNREALSDK_UE_VERSION UE4) set(EXPLICIT_PYTHON_ARCH win64) set(EXPLICIT_PYTHON_VERSION 3.12.3) add_subdirectory(libs/pyunrealsdk)
-
Release the GIL during unreal function calls, to try avoid a deadlock when running with
UNREALSDK_LOCKING_PROCESS_EVENT
. -
Upgraded pybind.
-
Updated CI and stubs to Python 3.12
Also see the unrealsdk v1.1.0 changelog here.
-
Add support for debugpy., to let it trigger python breakpoints on other threads. See the new Debugging section in the readme for more.
-
Add bindings for:
-
Add const getters to
StaticPyObject
. -
Add support for building using standard GCC-based MinGW. This is not tested in CI however, as it requires a newer version than that available in Github Actions.
-
Update stub linting, and do a few minor fixups.
- Initial Release