Skip to content
MPGHThe Dark Arts
/
RegisterLog in
Forum
Community
What's NewLatest posts across the boardTrendingHottest threads right nowSubscribedThreads you follow
Discussion
GeneralIntroductionsEntertainmentDebate FortFlaming & Rage
Board
News & AnnouncementsMPGH TimesSuggestions & HelpGiveaways
More Sections
Art & Graphic DesignProgrammingHackingCryptocurrency
Hacks & Cheats
Games
ValorantCS2 / CS:GOCall of Duty / WarzoneFortniteApex LegendsEscape From Tarkov
+14 moreLeague of LegendsGTA VMinecraftRustROTMGBattlefieldTroveBattleOnCombat ArmsCrossFireBlackshotRuneScapeDayZDead by Daylight
Resources
Game Hacking TutorialsReverse EngineeringGeneral Game HackingAnti-CheatConsole Game Hacking
Tools
Game Hacking ToolsTrainers & CheatsHack/Release NewsNew
Submit a release →Share your cheat, tool, or config with the community.
AINEW
AI Tools
General & DiscussionPrompt EngineeringLLM JailbreaksHotAI Agents & AutomationLocal / Open Models
AI × Gaming
AI Aimbots & VisionML Anti-CheatGame Bots & Automation
Create
AI Coding / Vibe CodingAI Art & MediaAI Voice & TTS
The AI frontier →Where game hacking meets modern machine learning. Jump in.
Marketplace
Buy & Sell
SellingBuyingTradingUser Services
Trust & Safety
Middleman LoungeMarketplace TalkVouch Copy Profiles
Money
Cryptocurrency TalkCurrency ExchangeWork & Job Offers
Start selling →List accounts, services, and goods. Use the middleman to trade safe.
MPGH The Dark Arts

A community for offensive security research, reverse engineering, and AI.

Community

ForumMarketplaceSearch

Account

RegisterLog in

Legal

Privacy PolicyForum RulesHelp & FAQ
© 2026 MPGH · All rights reserved.Built by the community, for the community. For educational purposes onlyContent is shared for security research and education — we don't condone illegal use. You're responsible for complying with applicable laws. Use at your own risk.
Home › Forum › MultiPlayer Game Hacks & Cheats › Other MMORPG Hacks › Trove Hacks & Cheats › silent aim and entity list

Red facesilent aim and entity list

Posts 1–8 of 8 · Page 1 of 1
ChloeOwO
ChloeOwO
silent aim and entity list
for simple silent aim that works with most projectiles you can hook the following functions and manipulate the paramaters they receive so velocity ( because the functions use that instead of angles ) match aimbot's:

  • SetProjectileOrigin xref E8 ?? ?? ?? ?? 8B 06 8B CE FF 50 ?? 5E 8B E5 5D 8B E3 5B C3 C6 86
  • SetProjectileOriginAndFire xref E8 ?? ?? ?? ?? 8B 06 8D 4D B8 51 8D 4D E8 C7 45 ?? ?? ?? ?? ?? 51 8B CE C7 45 ?? ?? ?? ?? ?? C7 45 F0 00 00 00 00 C7 45 F4 00 00 00 00 FF 50 ?? 8D 4D B8 E8 ?? ?? ?? ?? 8B CE
  • there are other functions but i forgot them and lost their signatures


you can even modify the projectile's origin ( position ) to teleport them, though the limit is 4 units from the character. you could still use the game's raycast function to achieve auto-wall by getting the position before the first collideable hit from the target to the character, checking if it's 4 units away from the character and placing it there if so.
for proper silent aim you would have to check where the game gets the camera angles from ( because ofc it uses that for the projectile's velocity, which you can also manipulate so the projectile goes further and faster, just like volatile velocity empowered gem effect ) and provide aimbot angles instead. i never bothered to do that.
the entity list is a linked list of metadata ( seemingly just "dormant" state ) XOR'd with actual entity pointer, located @ offset
0x7C in the World object 8B 0D ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 C0 0F 84 2A 01 00 00

World struct:
Code:
namespace ChloeOwO::Trove {
	namespace Entities {
		struct EntityInfo;
	}

	namespace Core {
		struct WorldMetadata;

		struct World {
		private:
			std::uint8_t gap0[124]; /* 0x0 */
		public:
			ChloeOwO::Trove::Entities::EntityInfoList entity_info_list; /* 0x7C */
			static inline ChloeOwO::Trove::Entities::EntityInfo *(__thiscall *UpdateEntities)(ChloeOwO::Trove::Core::World *const self) = nullptr; /* 55 8B EC 83 EC 20 53 8B D9 C7 45 F8 */
		}; /* Size: -- */
	}
}

ChloeOwO::Trove::Entities::EntityInfo *ChloeOwO::Trove::OwO::Ext::Trove::Core::WorldExt::UpdateEntities(ChloeOwO::Trove::Core::World &self) {
	self.field_158 = 1;
	const auto &entity_info_list = self.entity_info_list;
	auto head = EntityInfoNode{};
	head.entity_info_list = &self.entity_info_list;
	head.field_4 = nullptr;
	head.data = nullptr;
	head.FindEntity(0);
	const auto &metadata = *self.metadata;
	const auto total_time = metadata.total_time;
	auto i = head;
	while (!i.IsEnd(entity_info_list)) {
		auto &entity = *i.data->entity;
		i.Next();
		if (total_time > entity.field_88) {
			head.field_4 = entity.field_28;
			head.data = entity.field_2C;
			Trove::Sub002AE910(&self.field_140, &head.field_4);
		}
		if ((entity.field_3C & 0x10) != 0) {
			GameObjectExt::Update(entity);
		}
	}
	auto *const tail = self.entity_info_list.GetTail();
	self.field_158 = 0;
	return tail;
}
EntityInfo struct:
Code:
namespace ChloeOwO::Trove {
	namespace Entities {
		struct GameObject;

		struct EntityInfo {
			std::int32_t field_0; /* 0x0 */
		private:
			std::uint8_t gap4[12]; /* 0x4 */
		public:
			ChloeOwO::Trove::Entities::GameObject *entity; /* 0x10 */
		}; /* Size: 0x14 */
	}
}
EntityInfoNode struct:
Code:
namespace ChloeOwO::Trove::Entities {
	struct EntityInfo;
	struct EntityInfoList;

	struct EntityInfoNode {
		ChloeOwO::Trove::Entities::EntityInfoList *entity_info_list; /* 0x0 */
		ChloeOwO::Trove::Entities::EntityInfo *field_4; /* 0x4 */
		ChloeOwO::Trove::Entities::EntityInfo *data; /* 0x8 */
		void FindEntity(std::uint32_t start_index);
		void FindEntity(std::uint32_t start_index, std::size_t upper_bound);
		bool IsEnd(const ChloeOwO::Trove::Entities::EntityInfoList &list);
		ChloeOwO::Trove::Entities::EntityInfoNode *Next();
	}; /* Size: 0xC */
}

void ChloeOwO::Trove::Entities::EntityInfoNode::FindEntity(std::uint32_t start_index) {
	this->FindEntity(start_index, this->entity_info_list->size);
}

void ChloeOwO::Trove::Entities::EntityInfoNode::FindEntity(std::uint32_t start_index, std::size_t upper_bound) {
	auto current_index = start_index;
	auto *const entity_info_list = this->entity_info_list;
	this->data = 0;
	if (start_index < entity_info_list->size) {
		if (start_index < upper_bound) {
			do {
				auto *const current_entity_info_ptr = reinterpret_cast<EntityInfo *>(entity_info_list->base_address + current_index * entity_info_list->stride);
				this->field_4 = current_entity_info_ptr;
				if (((current_entity_info_ptr->field_0 & 1) == 0) || ((current_entity_info_ptr->field_0 & 0xFFFFFFFE) != 0)) {
					break;
				}
				++current_index;
			} while (current_index < upper_bound);
		}
		auto *const entity_info_ptr = this->field_4;
		if ((entity_info_ptr != nullptr) && (((entity_info_ptr->field_0 & 1) == 0) || ((entity_info_ptr->field_0 & 0xFFFFFFFE) != 0))) {
			if ((entity_info_ptr->field_0 & 1) != 0) {
				this->data = reinterpret_cast<EntityInfo *>(entity_info_ptr->field_0 & 0xFFFFFFFE);
			} else {
				this->data = entity_info_ptr;
			}
		}
	}
}

bool ChloeOwO::Trove::Entities::EntityInfoNode::IsEnd(const ChloeOwO::Trove::Entities::EntityInfoList &list) {
	return (this->data == nullptr) && (this->field_4 == list.GetTail()) && (this->entity_info_list == &list);
}

ChloeOwO::Trove::Entities::EntityInfoNode *ChloeOwO::Trove::Entities::EntityInfoNode::Next() {
	const auto v2 = (this->data->field_0 & 0xFFFFFFFE) == 0;
	this->data = reinterpret_cast<EntityInfo *>(this->data->field_0 & 0xFFFFFFFE);
	if (v2) {
		this->FindEntity(
			((reinterpret_cast<std::uintptr_t>(this->field_4) - this->entity_info_list->base_address) / this->entity_info_list->stride) + 1,
			this->entity_info_list->size);
	}
	return this;
}
EntityInfoList struct:
Code:
namespace ChloeOwO::Trove::Entities {
	struct EntityInfo;

	struct EntityInfoList {
		std::uintptr_t base_address; /* 0x0 */
		std::size_t stride; /* 0x4 */
		std::size_t size; /* 0x8 */
		ChloeOwO::Trove::Entities::EntityInfo *GetTail() const;
	}; /* Size: 0xC */
}

ChloeOwO::Trove::Entities::EntityInfo *ChloeOwO::Trove::Entities::EntityInfoList::GetTail() const {
	return (this->size != 0) ? reinterpret_cast<EntityInfo *>(this->base_address + (this->stride * (this->size - 1))) : nullptr;
}
#1 · 1y ago
TR
truyvietnam
Is there any info can be used in the GameObject?
#2 · 1y ago
AZ
az5w56ie56k
I might be stupid but whenever I look at where you say the entity list should be I never seem to find it

All I'm doing is scanning for "8B 0D ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 C0 0F 84 2A 01 00 00" and then lookin in structure dissect at the 0x7C offset and its always just a 4 byte value 0000D045

Any clue on what I'm doing wrong?
#3 · 1y ago
AL
Allom
Quote Originally Posted by ChloeOwO View Post
for simple silent aim that works with most projectiles you can hook the following functions and manipulate the paramaters they receive so velocity ( because the functions use that instead of angles ) match aimbot's:

  • SetProjectileOrigin xref E8 ?? ?? ?? ?? 8B 06 8B CE FF 50 ?? 5E 8B E5 5D 8B E3 5B C3 C6 86
  • SetProjectileOriginAndFire xref E8 ?? ?? ?? ?? 8B 06 8D 4D B8 51 8D 4D E8 C7 45 ?? ?? ?? ?? ?? 51 8B CE C7 45 ?? ?? ?? ?? ?? C7 45 F0 00 00 00 00 C7 45 F4 00 00 00 00 FF 50 ?? 8D 4D B8 E8 ?? ?? ?? ?? 8B CE
  • there are other functions but i forgot them and lost their signatures


you can even modify the projectile's origin ( position ) to teleport them, though the limit is 4 units from the character. you could still use the game's raycast function to achieve auto-wall by getting the position before the first collideable hit from the target to the character, checking if it's 4 units away from the character and placing it there if so.
for proper silent aim you would have to check where the game gets the camera angles from ( because ofc it uses that for the projectile's velocity, which you can also manipulate so the projectile goes further and faster, just like volatile velocity empowered gem effect ) and provide aimbot angles instead. i never bothered to do that.
the entity list is a linked list of metadata ( seemingly just "dormant" state ) XOR'd with actual entity pointer, located @ offset
0x7C in the World object 8B 0D ?? ?? ?? ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 85 C0 0F 84 2A 01 00 00[/CODE]


To decode entity list need entity pointer? What is it like now?
#4 · edited 1y ago · 1y ago
IndenticaI
IndenticaI
Hmm.... when trovians will make script with no clip + no speed limit + falling slow down + direct move to boss from entity list + auto-attack on boomeranger + hexagonal movement + use origin portal HMMMMMMMMMMMMMM (450-500 dph if u are me, 600+ if u are not me and not too for preload)


<---- me
#5 · edited 1y ago · 1y ago
ZX
zxc030303
so how does this thing works? help xD
#6 · 1y ago
AL
Allom
What is ChloeOwO::Trove::OwO::Ext::Trove::Core::WorldExt:: UpdateEntities
what is GameObjectExt::Update(entity);
its useless cuze UpdateEntities defined in core, i dont know how you get code of update(entity) amazing. Understood in the code of the updateEntities function what metadata and fields are for. But where did the other namespaces come from?
#7 · 1y ago
SI
sillybean42
has anyone managed to get this working or knows of a free scrip that has an aimbot, or any way to move camera position to enemys ?
#8 · 1y ago
Posts 1–8 of 8 · Page 1 of 1

Post a Reply

Similar Threads

  • Entity FinderBy end360 in Garry's Mod Hacks & Cheats
    4Last post 12y ago
  • [Re-release] Dupe exploit that makes every entity and brush invisibleBy Activeproandrey in Garry's Mod Hacks & Cheats
    9Last post 12y ago
  • List of all LithTech Jupiter Engine Games and list of modding tools !By kmanev073 in CrossFire Mods & Rez Modding
    3Last post 14y ago
  • [AssaultCube]Get local player entityBy Retoxified in C++/C Programming
    1Last post 16y ago
  • [List] List of Undetected Hacks (Updated Daily)By JeremyJessome in Combat Arms Hacks & Cheats
    12Last post 15y ago

Tags for this Thread

None