Some utility headers to help with x64 native plugin development
See wiki here!
- Config
- abstracted and contained config layer
ini,toml,jsonfile supportbool,int64_t,double,stringtype support- built in array support
- multiple file loads & generate default file
- custom formatted string parser to c++ structure
- Hook
- pattern scanner
- asm patch
- cave hook
- virtual method table swap
- import address table swap
- simple function hook (write_call/write_branch)
- non-volatile call (LTO enabled hooks)
- various usefully gathered utils
- Logge
- logging macros
- Utility
- function
constevalhelper functions retrieving the argument count of a function.
- model
Singletondata model abstract class to save boilerplate code.enumerationaddition to the originalRE::stl::enumeration.- static reflection for enum name, type name and value name, support value_type(
n) and flag_type(1<<n) std::rangesiterator for value_range(n) and flag_range(1<<n)
- static reflection for enum name, type name and value name, support value_type(
conceptsuseful concepts for contraining function templatesstruct_cast,tuple_castcompile time conversion for same aligned structs/tuples using structure binding (up to 9 bindable members)vector_cast,range_castconstexpr conversion forstd::ranges::rangeandstd::vector
- numbers
- FNV-1A compile time string hashing with 32bit/64bit implementation.
- string
to_wstringmethodconcatcompile time string concatenation.- various string related functions using
std::ranges
- function
- Extra(For SKSE)
CONSOLElogging macro but for in-game console.serializablepainless, all-in-one serialization solution for SKSE plugins.(Planned to move to general support instead of strict SKSE)
MIT License, 2020-present DK