25354344

5:50pm (EST) · updated 2026-09-23 05:26 UTC

AttackEntity

namespace AttackEntity
{
    inline auto animationDelay = std::uint32_t ( 0x2F0 );
    inline auto deployDelay = std::uint32_t ( 0x2E8 );
    inline auto effectiveRange = std::uint32_t ( 0x2F4 );
    inline auto lastTickTime = std::uint32_t ( 0x348 );
    inline auto nextAttackTime = std::uint32_t ( 0x340 );
    inline auto nextTickTime = std::uint32_t ( 0x350 );
    inline auto noHeadshots = std::uint32_t ( 0x33E );
    inline auto repeatDelay = std::uint32_t ( 0x2EC );
    inline auto timeSinceDeploy = std::uint32_t ( 0x358 );
}

BaseCombatEntity

namespace BaseCombatEntity
{
    inline auto _health = std::uint32_t ( 0x2B4 );
    inline auto _maxHealth = std::uint32_t ( 0x2B8 );
    inline auto baseProtection = std::uint32_t ( 0x238 );
    inline auto lifestate = std::uint32_t ( 0x2A8 );
    inline auto markAttackerHostile = std::uint32_t ( 0x2AE );
    inline auto skeletonProperties = std::uint32_t ( 0x230 );
    inline auto startHealth = std::uint32_t ( 0x240 );
}

BaseCorpse

namespace BaseCorpse
{
    inline auto blockDamageIfNotGather = std::uint32_t ( 0x2F0 );
    inline auto parentEnt = std::uint32_t ( 0x2D8 );
}

BaseEntity

namespace BaseEntity
{
    inline auto bounds = std::uint32_t ( 0x18C );
    inline auto flags = std::uint32_t ( 0x1C0 );
    inline auto model = std::uint32_t ( 0x1B8 );
    inline auto positionLerp = std::uint32_t ( 0x128 );
    inline auto triggers = std::uint32_t ( 0xA8 );
}

BaseMelee

namespace BaseMelee
{
    inline auto attackRadius = std::uint32_t ( 0x3A4 );
    inline auto blockSprintOnAttack = std::uint32_t ( 0x3A9 );
    inline auto canThrowAsProjectile = std::uint32_t ( 0x380 );
    inline auto damageProperties = std::uint32_t ( 0x388 );
    inline auto gathering = std::uint32_t ( 0x3E0 );
    inline auto maxDistance = std::uint32_t ( 0x3A0 );
}

BaseMovement

namespace BaseMovement
{
    inline auto Crawling = std::uint32_t ( 0x58 );
    inline auto Ducking = std::uint32_t ( 0x54 );
    inline auto Grounded = std::uint32_t ( 0x5C );
    inline auto InheritedVelocity = std::uint32_t ( 0x38 );
    inline auto Owner = std::uint32_t ( 0x30 );
    inline auto Running = std::uint32_t ( 0x50 );
    inline auto TargetMovement = std::uint32_t ( 0x44 );
    inline auto lastTeleportedTime = std::uint32_t ( 0x60 );
}

BaseNetworkable

namespace BaseNetworkable
{
    inline auto children = std::uint32_t ( 0x88 );
    inline auto parentEntity = std::uint32_t ( 0x38 );
    inline auto prefabID = std::uint32_t ( 0x54 );
}

BaseNetworkableStatic - %2cfb2dd4a5a5d120cb9ab6e8d9e8bfa23406345d

namespace BaseNetworkableStatic
{
    inline auto clientEntities = std::uint32_t ( 0x8 );
}

BasePlayer

namespace BasePlayer
{
    inline auto _displayName = std::uint32_t ( 0x4C8 );
    inline auto _lookingAt = std::uint32_t ( 0x318 );
    inline auto clActiveItem = std::uint32_t ( 0x588 );
    inline auto clothingMoveSpeedReduction = std::uint32_t ( 0x7C0 );
    inline auto clothingWaterSpeedBonus = std::uint32_t ( 0x7C4 );
    inline auto currentTeam = std::uint32_t ( 0x558 );
    inline auto eyes = std::uint32_t ( 0x740 );
    inline auto input = std::uint32_t ( 0x6A0 );
    inline auto inventory = std::uint32_t ( 0x4F0 );
    inline auto lastSentTick = std::uint32_t ( 0x3C0 );
    inline auto lastSentTickTime = std::uint32_t ( 0x698 );
    inline auto modelState = std::uint32_t ( 0x6E8 );
    inline auto modifiers = std::uint32_t ( 0x438 );
    inline auto mounted = std::uint32_t ( 0x5E0 );
    inline auto movement = std::uint32_t ( 0x518 );
    inline auto playerFlags = std::uint32_t ( 0x6D8 );
    inline auto playerModel = std::uint32_t ( 0x2F0 );
    inline auto userId = std::uint32_t ( 0x720 );
    inline auto weaponMoveSpeedScale = std::uint32_t ( 0x7B8 );
}

BaseProjectile

namespace BaseProjectile
{
    inline auto aimCone = std::uint32_t ( 0x418 );
    inline auto aimConePenaltyMax = std::uint32_t ( 0x424 );
    inline auto aimSway = std::uint32_t ( 0x400 );
    inline auto aimSwaySpeed = std::uint32_t ( 0x404 );
    inline auto aimconePenalty = std::uint32_t ( 0x46C );
    inline auto aimconePenaltyPerShot = std::uint32_t ( 0x420 );
    inline auto automatic = std::uint32_t ( 0x398 );
    inline auto canChangeFireModes = std::uint32_t ( 0x440 );
    inline auto currentBurst = std::uint32_t ( 0x4B8 );
    inline auto fractionalReload = std::uint32_t ( 0x3E8 );
    inline auto hipAimCone = std::uint32_t ( 0x41C );
    inline auto isBurstWeapon = std::uint32_t ( 0x43F );
    inline auto isReloading = std::uint32_t ( 0x484 );
    inline auto nextReloadTime = std::uint32_t ( 0x458 );
    inline auto numShotsFired = std::uint32_t ( 0x454 );
    inline auto primaryMagazine = std::uint32_t ( 0x3E0 );
    inline auto projectileVelocityScale = std::uint32_t ( 0x394 );
    inline auto recoil = std::uint32_t ( 0x408 );
    inline auto reloadEndDuration = std::uint32_t ( 0x3F4 );
    inline auto reloadFractionDuration = std::uint32_t ( 0x3F0 );
    inline auto reloadStartDuration = std::uint32_t ( 0x3EC );
    inline auto reloadTime = std::uint32_t ( 0x3D8 );
    inline auto stancePenalty = std::uint32_t ( 0x468 );
    inline auto stancePenaltyScale = std::uint32_t ( 0x430 );
    inline auto startReloadTime = std::uint32_t ( 0x460 );
}

BaseViewModel

namespace BaseViewModel
{
    inline auto animator = std::uint32_t ( 0xC0 );
    inline auto aspectOffset = std::uint32_t ( 0xB0 );
    inline auto bob = std::uint32_t ( 0xB8 );
    inline auto lower = std::uint32_t ( 0xD8 );
    inline auto punch = std::uint32_t ( 0x100 );
    inline auto sway = std::uint32_t ( 0x130 );
    inline auto useViewModelCamera = std::uint32_t ( 0x40 );
}

BowWeapon

namespace BowWeapon
{
    inline auto arrowBack = std::uint32_t ( 0x4DC );
    inline auto attackReady = std::uint32_t ( 0x4D8 );
    inline auto wasAiming = std::uint32_t ( 0x4E0 );
}

BuildingBlock - %c74efa979398f63844e22e0db8ca22df9217d033

namespace BuildingBlock
{
    inline auto apartmentList = std::uint32_t ( 0x20 );
}

CompoundBowWeapon

namespace CompoundBowWeapon
{
    inline auto conditionLossHeldDelay = std::uint32_t ( 0x500 );
    inline auto conditionLossPerSecondHeld = std::uint32_t ( 0x4FC );
    inline auto movementPenaltyRampUpTime = std::uint32_t ( 0x4F8 );
    inline auto stringBonusDamage = std::uint32_t ( 0x4EC );
    inline auto stringBonusDistance = std::uint32_t ( 0x4F0 );
    inline auto stringBonusVelocity = std::uint32_t ( 0x4F4 );
    inline auto stringHoldDurationMax = std::uint32_t ( 0x4E8 );
}

EntityRealm - %7b281f07287fe6a240e03693b8c623a1c6507909

namespace EntityRealm
{
    inline auto entityList = std::uint32_t ( 0x18 );
}

FlintStrikeWeapon

namespace FlintStrikeWeapon
{
    inline auto _didSparkThisFrame = std::uint32_t ( 0x4D0 );
    inline auto _isStriking = std::uint32_t ( 0x4D1 );
    inline auto strikes = std::uint32_t ( 0x4D4 );
    inline auto successFraction = std::uint32_t ( 0x4C0 );
    inline auto successIncrease = std::uint32_t ( 0x4C4 );
}

HeldEntity

namespace HeldEntity
{
    inline auto viewModel = std::uint32_t ( 0x200 );
}

HumanNPC

namespace HumanNPC
{
    inline auto AdditionalLosBlockingLayer = std::uint32_t ( 0x848 );
    inline auto aimConeScale = std::uint32_t ( 0x858 );
    inline auto lastDismountTime = std::uint32_t ( 0x85C );
}

InputMessage - %22389a947db7d4a9ac5de818be0a1fc21342c921

namespace InputMessage
{
    inline auto aimAngles = std::uint32_t ( 0x20 );
    inline auto buttons = std::uint32_t ( 0x1C );
    inline auto mouseDelta = std::uint32_t ( 0x10 );
}

InputState - %4fececac923fe347a918887cf571c1df0141ec72

namespace InputState
{
    inline auto current = std::uint32_t ( 0x18 );
    inline auto previous = std::uint32_t ( 0x20 );
}

Interpolator - %a85af913d0417d8c2a392891e7ae880a1e8c9891

namespace Interpolator
{
    inline auto last = std::uint32_t ( 0x10 );
    inline auto list = std::uint32_t ( 0x30 );
}

Item - %fcd1d7e582cd2a82211f9de7fc6e5adb40e01a05

namespace Item
{
    inline auto amount = std::uint32_t ( 0x68 );
    inline auto heldEntity = std::uint32_t ( 0x70 );
    inline auto info = std::uint32_t ( 0x40 );
    inline auto uid = std::uint32_t ( 0xA8 );
    inline auto worldEnt = std::uint32_t ( 0x88 );
}

ItemContainer - %9fba764644d032831959b6b33961cd0eb6b807ec

namespace ItemContainer
{
    inline auto flags = std::uint32_t ( 0x58 );
    inline auto itemList = std::uint32_t ( 0x48 );
    inline auto uid = std::uint32_t ( 0x10 );
}

ItemDefinition

namespace ItemDefinition
{
    inline auto category = std::uint32_t ( 0x58 );
    inline auto displayName = std::uint32_t ( 0x40 );
    inline auto itemid = std::uint32_t ( 0x20 );
    inline auto shortname = std::uint32_t ( 0x28 );
}

ItemIconStatic - %d0e3fda106c7a5aa33040f46359d36710ae12525

namespace ItemIconStatic
{
    inline auto containerLootStartTimes = std::uint32_t ( 0x18 );
}

ItemModProjectile

namespace ItemModProjectile
{
    inline auto projectileObject = std::uint32_t ( 0x20 );
    inline auto projectileSpread = std::uint32_t ( 0x3C );
    inline auto projectileVelocity = std::uint32_t ( 0x40 );
    inline auto projectileVelocitySpread = std::uint32_t ( 0x44 );
}

ListComponent

namespace ListComponent
{
    inline auto InstanceList = std::uint32_t ( 0x38 );
}

ListComponentProjectile - ListComponent`1

namespace ListComponentProjectile
{
    inline auto TypeInfo = std::uint32_t ( 0x10985298 );
}

ListDictionary - %0b12ddbde5143045252dbad031fc8fe89eef2554

namespace ListDictionary
{
    inline auto vals = std::uint32_t ( 0x20 );
}

ListHashSet - %db0183992cbfaab29fcd7e10d74ca9fc96e5dc5c

namespace ListHashSet
{
    inline auto vals = std::uint32_t ( 0x10 );
}

LocalPlayerStatic - %64c1b69bff6d286d8997db1011ee19be9affdc56

namespace LocalPlayerStatic
{
    inline auto Entity = std::uint32_t ( 0x140 );
}

LootableCorpse

namespace LootableCorpse
{
    inline auto lootPanelName = std::uint32_t ( 0x310 );
}

Magazine

namespace Magazine
{
    inline auto allowAmmoSwitching = std::uint32_t ( 0x29 );
    inline auto allowPlayerReloading = std::uint32_t ( 0x28 );
    inline auto ammoType = std::uint32_t ( 0x20 );
    inline auto capacity = std::uint32_t ( 0x18 );
    inline auto contents = std::uint32_t ( 0x1C );
    inline auto definition = std::uint32_t ( 0x10 );
}

MainCamera

namespace MainCamera
{
    inline auto mainCamera = std::uint32_t ( 0xB0 );
}

Model

namespace Model
{
    inline auto boneNames = std::uint32_t ( 0x58 );
    inline auto boneTransforms = std::uint32_t ( 0x50 );
}

ModelState - %37462602c7fc5dd27a0388f6756da07738cdae8e

namespace ModelState
{
    inline auto flags = std::uint32_t ( 0x14 );
    inline auto lookDir = std::uint32_t ( 0x3C );
    inline auto waterLevel = std::uint32_t ( 0x70 );
}

NPCPlayer

namespace NPCPlayer
{
    inline auto LegacyNavigation = std::uint32_t ( 0x824 );
    inline auto MovementTickStartDelay = std::uint32_t ( 0x7E8 );
    inline auto attackLengthMaxShortRangeScale = std::uint32_t ( 0x838 );
    inline auto damageScale = std::uint32_t ( 0x830 );
    inline auto finalDestination = std::uint32_t ( 0x7F8 );
    inline auto shortRange = std::uint32_t ( 0x834 );
}

PlayerCorpse

namespace PlayerCorpse
{
    inline auto underwearSkin = std::uint32_t ( 0x340 );
}

PlayerEyes

namespace PlayerEyes
{
    inline auto bodyRotation = std::uint32_t ( 0x50 );
    inline auto viewOffset = std::uint32_t ( 0x40 );
}

PlayerInput

namespace PlayerInput
{
    inline auto bodyAngles = std::uint32_t ( 0x44 );
    inline auto state = std::uint32_t ( 0x28 );
}

PlayerInventory

namespace PlayerInventory
{
    inline auto containerBelt = std::uint32_t ( 0x60 );
    inline auto containerMain = std::uint32_t ( 0x38 );
    inline auto containerWear = std::uint32_t ( 0x58 );
    inline auto loot = std::uint32_t ( 0x48 );
}

PlayerModel

namespace PlayerModel
{
    inline auto _multiMesh = std::uint32_t ( 0x250 );
}

PlayerTick - %db435d865f911ed99c48de38e6be67d2d796a3b1

namespace PlayerTick
{
    inline auto activeItem = std::uint32_t ( 0x30 );
    inline auto eyePos = std::uint32_t ( 0x48 );
    inline auto inputState = std::uint32_t ( 0x40 );
    inline auto modelState = std::uint32_t ( 0x20 );
    inline auto parentID = std::uint32_t ( 0x58 );
    inline auto position = std::uint32_t ( 0x14 );
}

PlayerWalkMovement

namespace PlayerWalkMovement
{
    inline auto groundAngle = std::uint32_t ( 0x108 );
    inline auto groundAngleNew = std::uint32_t ( 0x110 );
    inline auto groundNormal = std::uint32_t ( 0x160 );
    inline auto groundNormalNew = std::uint32_t ( 0x170 );
    inline auto groundTime = std::uint32_t ( 0x118 );
    inline auto groundVelocity = std::uint32_t ( 0x180 );
    inline auto groundVelocityNew = std::uint32_t ( 0x190 );
    inline auto jumpTime = std::uint32_t ( 0x120 );
    inline auto landTime = std::uint32_t ( 0x128 );
    inline auto maxVelocity = std::uint32_t ( 0x100 );
    inline auto previousInheritedVelocity = std::uint32_t ( 0x150 );
    inline auto previousPosition = std::uint32_t ( 0x130 );
    inline auto previousVelocity = std::uint32_t ( 0x140 );
}

PositionLerp - %7a6d5e6c6e36342d0dea2a85ebba2f4c46ab093b

namespace PositionLerp
{
    inline auto interpolator = std::uint32_t ( 0x28 );
}

ProgressBar

namespace ProgressBar
{
    inline auto Instance = std::uint32_t ( 0x8 );
    inline auto leftField = std::uint32_t ( 0x40 );
    inline auto timeCounter = std::uint32_t ( 0x24 );
    inline auto timeFinished = std::uint32_t ( 0x20 );
}

Projectile

namespace Projectile
{
    inline auto currentPosition = std::uint32_t ( 0x170 );
    inline auto currentVelocity = std::uint32_t ( 0x164 );
    inline auto drag = std::uint32_t ( 0x34 );
    inline auto gravityModifier = std::uint32_t ( 0x38 );
    inline auto initialDistance = std::uint32_t ( 0x44 );
    inline auto thickness = std::uint32_t ( 0x3C );
}

ProjectileWeaponMod

namespace ProjectileWeaponMod
{
    inline auto isSilencer = std::uint32_t ( 0x218 );
    inline auto projectileVelocity = std::uint32_t ( 0x22C );
    inline auto silencerType = std::uint32_t ( 0x21C );
}

RecoilProperties

namespace RecoilProperties
{
    inline auto newRecoilOverride = std::uint32_t ( 0x80 );
    inline auto recoilPitchMax = std::uint32_t ( 0x24 );
    inline auto recoilPitchMin = std::uint32_t ( 0x20 );
    inline auto recoilYawMax = std::uint32_t ( 0x1C );
    inline auto recoilYawMin = std::uint32_t ( 0x18 );
}

Rvas

namespace Rvas
{
    inline auto TypeManagerInstance = std::uint32_t ( 0x221B020 );
    inline auto TypeToObjectSet = std::uint32_t ( 0x221AFF8 );
    inline auto m_Instance = std::uint32_t ( 0x217F8E8 );
    inline auto rigidActors = std::uint32_t ( 0x23D8 );
}

ScientistNPC

namespace ScientistNPC
{
    inline auto IdleChatterRepeatRange = std::uint32_t ( 0x880 );
    inline auto deathStatName = std::uint32_t ( 0x878 );
    inline auto radioChatterType = std::uint32_t ( 0x888 );
}

SkeletonProperties

namespace SkeletonProperties
{
    inline auto bones = std::uint32_t ( 0x20 );
}

SkeletonPropertiesBoneProperty

namespace SkeletonPropertiesBoneProperty
{
    inline auto area = std::uint32_t ( 0x20 );
    inline auto bone = std::uint32_t ( 0x10 );
    inline auto boneName = std::uint32_t ( 0x18 );
}

SkinnedMultiMesh

namespace SkinnedMultiMesh
{
    inline auto Renderers = std::uint32_t ( 0x58 );
}

StringPool - %5fd77c207d3ed476ef69031f245afe289d9a9484

namespace StringPool
{
    inline auto toNumber = std::uint32_t ( 0x90 );
}

TodSkyStatic - %4145935e75f31801326229f3bf01e9e8e9b26c33

namespace TodSkyStatic
{
    inline auto instances = std::uint32_t ( 0x50 );
}

TranslatePhrase

namespace TranslatePhrase
{
    inline auto legacyEnglish = std::uint32_t ( 0x20 );
    inline auto token = std::uint32_t ( 0x10 );
}

TriggerLadder

namespace TriggerLadder
{
    inline auto ForceLookAt = std::uint32_t ( 0x54 );
    inline auto RequireJumpToMount = std::uint32_t ( 0x55 );
    inline auto Type = std::uint32_t ( 0x50 );
}

TriggerMovement

namespace TriggerMovement
{
    inline auto losEyes = std::uint32_t ( 0x50 );
    inline auto movementModify = std::uint32_t ( 0x58 );
    inline auto scale = std::uint32_t ( 0x5C );
}

UnityEngineUiText

namespace UnityEngineUiText
{
    inline auto m_Text = std::uint32_t ( 0xE8 );
}

ViewModel

namespace ViewModel
{
    inline auto instance = std::uint32_t ( 0x28 );
}

ViewmodelBob

namespace ViewmodelBob
{
    inline auto bobAmountRun = std::uint32_t ( 0x2C );
    inline auto bobAmountWalk = std::uint32_t ( 0x28 );
    inline auto bobSpeedRun = std::uint32_t ( 0x24 );
    inline auto bobSpeedWalk = std::uint32_t ( 0x20 );
    inline auto leftOffsetRun = std::uint32_t ( 0x30 );
}

ViewmodelLower

namespace ViewmodelLower
{
    inline auto forceLower = std::uint32_t ( 0x22 );
    inline auto lowerOnSprint = std::uint32_t ( 0x20 );
    inline auto lowerScale = std::uint32_t ( 0x24 );
    inline auto lowerWhenCantAttack = std::uint32_t ( 0x21 );
    inline auto shouldLower = std::uint32_t ( 0x28 );
}

ViewmodelPunch

namespace ViewmodelPunch
{
    inline auto punchDuration = std::uint32_t ( 0x34 );
    inline auto punchMagnitude = std::uint32_t ( 0x38 );
    inline auto punchStartTime = std::uint32_t ( 0x3C );
}

ViewmodelSway

namespace ViewmodelSway
{
    inline auto positionalSwayAmount = std::uint32_t ( 0x24 );
    inline auto positionalSwaySpeed = std::uint32_t ( 0x20 );
    inline auto rotateAmountTest = std::uint32_t ( 0x30 );
    inline auto rotationSwayAmount = std::uint32_t ( 0x2C );
    inline auto rotationSwaySpeed = std::uint32_t ( 0x28 );
}

WorldItem

namespace WorldItem
{
    inline auto Item = std::uint32_t ( 0x208 );
    inline auto allowPickup = std::uint32_t ( 0x200 );
}

Decryption/Encryptions

#include <array>
#include <bit>
#include <cstdint>
#include <cstring>

namespace Decryption
{
    namespace AttackEntity
    {
        inline auto decrypt_last_tick_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 30 );
                word += 0x46431397u;
                word = std::rotl ( word, 3 );
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_next_attack_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x41c8d9b8u;
                word += 0xf575cdd3u;
                word ^= 0x4f9bfbbeu;
                word = std::rotl ( word, 26 );
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_next_tick_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0xc0041902u;
                word = std::rotl ( word, 13 );
                word ^= 0xd60e9021u;
                word += 0x8942445eu;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_time_since_deploy ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 5 );
                word += 0xd272affeu;
                word ^= 0xe1167504u;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

    }
    namespace BaseNetworkableStatic
    {
        inline auto decrypt_client_entities ( std::uint64_t value ) -> std::uint64_t
        {
            const auto handle = memory->read<std::uint64_t> ( value + 0x18 );

            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( handle );

            for ( auto& word : words )
            {
                word += 0x8dd91c1au;
                word ^= 0x2bb75f5eu;
                word = std::rotl ( word, 25 );
            }

            return get_handle ( std::bit_cast<std::uint64_t> ( words ) );
        }

    }
    namespace BasePlayer
    {
        inline auto decrypt_clactiveitem ( std::uint64_t value ) -> std::uint64_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( value );

            for ( auto& word : words )
            {
                word ^= 0xcdc978ccu;
                word += 0xae1b6977u;
                word ^= 0xaa663687u;
            }

            return std::bit_cast<std::uint64_t> ( words );
        }

        inline auto decrypt_eyes ( std::uint64_t value ) -> std::uint64_t
        {
            const auto handle = memory->read<std::uint64_t> ( value + 0x18 );

            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( handle );

            for ( auto& word : words )
            {
                word ^= 0x4587203bu;
                word += 0xd4109832u;
                word ^= 0x2f601e25u;
            }

            return get_handle ( std::bit_cast<std::uint64_t> ( words ) );
        }

        inline auto decrypt_inventory ( std::uint64_t value ) -> std::uint64_t
        {
            const auto handle = memory->read<std::uint64_t> ( value + 0x18 );

            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( handle );

            for ( auto& word : words )
            {
                word ^= 0xbb08a3fau;
                word += 0x56329d44u;
                word = std::rotl ( word, 27 );
            }

            return get_handle ( std::bit_cast<std::uint64_t> ( words ) );
        }

        inline auto decrypt_lastsentticktime ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x76352312u;
                word += 0xb1bc4c6u;
                word = std::rotl ( word, 20 );
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_user_id ( std::uint64_t value ) -> std::uint64_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 17 );
                word ^= 0x24e8f4cfu;
                word = std::rotl ( word, 20 );
                word += 0xdeb291a6u;
            }

            return std::bit_cast<std::uint64_t> ( words );
        }

    }
    namespace BaseProjectile
    {
        inline auto decrypt_next_reload_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0xc09a3c66u;
                word ^= 0x41bc9071u;
                word += 0x5bcb5cbfu;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_start_reload_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x62f31ce5u;
                word = std::rotl ( word, 29 );
                word += 0xf0b66cd6u;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

    }
    namespace EntityRealm
    {
        inline auto decrypt_entity_list ( std::uint64_t value ) -> std::uint64_t
        {
            const auto handle = memory->read<std::uint64_t> ( value + 0x18 );

            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( handle );

            for ( auto& word : words )
            {
                word += 0x30f40426u;
                word = std::rotl ( word, 19 );
                word ^= 0x41c539ddu;
                word = std::rotl ( word, 1 );
            }

            return get_handle ( std::bit_cast<std::uint64_t> ( words ) );
        }

    }
    namespace LocalPlayerStatic
    {
        inline auto decrypt_localplayer ( std::uint64_t value ) -> std::uint64_t
        {
            const auto handle = memory->read<std::uint64_t> ( value + 0x18 );

            auto words = std::bit_cast<std::array<std::uint32_t, 2>> ( handle );

            for ( auto& word : words )
            {
                word += 0x8dd91c1au;
                word ^= 0x2bb75f5eu;
                word = std::rotl ( word, 25 );
            }

            return get_handle ( std::bit_cast<std::uint64_t> ( words ) );
        }

    }
    namespace PlayerEyes
    {
        inline auto decrypt_viewoffset ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 8 );
                word ^= 0xe7e789a4u;
                word += 0xa3e33ef7u;
                word = std::rotl ( word, 13 );
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_viewoffset ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 19 );
                word += 0x5c1cc109u;
                word ^= 0xe7e789a4u;
                word = std::rotl ( word, 24 );
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

    }
    namespace PlayerWalkMovement
    {
        inline auto decrypt_ground_angle ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 24 );
                word ^= 0xd2376e29u;
                word += 0xa23a6778u;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_ground_angle_new ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0xa0dd7848u;
                word = std::rotl ( word, 31 );
                word += 0x5e77477bu;
                word ^= 0x81d7abdau;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_ground_normal ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0x77c3d7adu;
                word ^= 0x6b406dcu;
                word += 0x964a19d9u;
                word = std::rotl ( word, 24 );
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_ground_normal_new ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word ^= 0xd4c0e737u;
                word = std::rotl ( word, 23 );
                word += 0xf5c682d5u;
                word ^= 0x33ebed5au;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_ground_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 4 );
                word ^= 0xb030eb55u;
                word += 0xdced166eu;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_ground_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xcfa22296u;
                word = std::rotl ( word, 13 );
                word ^= 0x93495377u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_ground_velocity_new ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xc6b0baa8u;
                word ^= 0x85b40058u;
                word = std::rotl ( word, 17 );
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_jump_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x9f34928fu;
                word = std::rotl ( word, 10 );
                word += 0x1febe94au;
                word = std::rotl ( word, 11 );
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_land_time ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word ^= 0xa3d8a5dfu;
                word += 0x236ad5c1u;
                word = std::rotl ( word, 7 );
                word ^= 0x2a95155au;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_max_velocity ( std::uint32_t value ) -> float
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x406b9da0u;
                word ^= 0xf58d4e50u;
                word += 0xbc074bf5u;
            }

            auto result = 0.00f;
            std::memcpy ( &result, words.data ( ), sizeof ( result ) );

            return result;
        }

        inline auto decrypt_previous_inherited_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0x62f31cedu;
                word = std::rotl ( word, 29 );
                word += 0xf0b66cd6u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_previous_position ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xd0204fc9u;
                word = std::rotl ( word, 26 );
                word ^= 0xef191da9u;
                word += 0x235ec176u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto decrypt_previous_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xc09a3c66u;
                word ^= 0x41bc9079u;
                word += 0x5bcb5cb7u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_ground_angle ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x5dc59888u;
                word ^= 0xd2376e29u;
                word = std::rotl ( word, 8 );
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_ground_angle_new ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x81d7abdau;
                word += 0xa188b885u;
                word = std::rotl ( word, 1 );
                word += 0x5f2287b8u;
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_ground_normal ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 8 );
                word += 0x69b5e627u;
                word ^= 0x6b406dcu;
                word += 0x883c2853u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_ground_normal_new ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x33ebed5au;
                word += 0xa397d2bu;
                word = std::rotl ( word, 9 );
                word ^= 0xd4c0e737u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_ground_time ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x2312e992u;
                word ^= 0xb030eb55u;
                word = std::rotl ( word, 28 );
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_ground_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x93495377u;
                word = std::rotl ( word, 19 );
                word += 0x305ddd6au;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_ground_velocity_new ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 15 );
                word ^= 0x85b40058u;
                word += 0x394f4558u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_jump_time ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word = std::rotl ( word, 21 );
                word += 0xe01416b6u;
                word = std::rotl ( word, 22 );
                word += 0x60cb6d71u;
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_land_time ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word ^= 0x2a95155au;
                word = std::rotl ( word, 25 );
                word += 0xdc952a3fu;
                word ^= 0xa3d8a5dfu;
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_max_velocity ( std::uint32_t value ) -> std::uint32_t
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 1>> ( value );

            for ( auto& word : words )
            {
                word += 0x43f8b40bu;
                word ^= 0xf58d4e50u;
                word += 0xbf946260u;
            }

            return std::bit_cast<std::uint32_t> ( words );
        }

        inline auto encrypt_previous_inherited_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xf49932au;
                word = std::rotl ( word, 3 );
                word += 0x9d0ce313u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_previous_position ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xdca13e8au;
                word ^= 0xef191da9u;
                word = std::rotl ( word, 6 );
                word += 0x2fdfb037u;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

        inline auto encrypt_previous_velocity ( std::array<std::uint32_t, 3> value ) -> std::array<std::uint32_t, 3>
        {
            auto words = std::bit_cast<std::array<std::uint32_t, 3>> ( value );

            for ( auto& word : words )
            {
                word += 0xa434a349u;
                word ^= 0x41bc9079u;
                word += 0x3f65c39au;
            }

            return std::bit_cast<std::array<std::uint32_t, 3>> ( words );
        }

    }
}