- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 723
- Reaction score
- 457
Still manually pulling mobs on P-Servers like a peasant? If you are running filler twinks for Extreme-Dungeons or just need a brainless way to farm while your main account does the heavy lifting, this Python-based macro is a solid base. It was originally tailored for the Lucerna P-Server, but the logic is generic enough for most Metin clients that haven't nuked user-mode input hooks.
Technical Breakdown
The setup is split into two components: a wrapper (StartMacro) and the core engine (Macro). Instead of just slamming keys into the active window, this uses win32api.SendMessage, allowing the bot to interact with the game while it stays in the background. You can farm on your main or watch movies while your twinks handle the mob pulling and item vacuuming.
Process Obfuscation (The Wrapper)
The author implemented a basic but effective trick to dodge simple process-name watchdogs. The wrapper script:
Core Features
The Source Code
Security Warning
Keep in mind this is a User-Mode macro. If the server is running a decent anti-cheat that monitors SendMessage or checks for unnatural input frequency, you will get flagged. This is best used on servers with weak AC or for private filler twinks that you don't mind losing.
Always test on a VM or a throwaway account first. If you want to make this safer, add some random.uniform sleep intervals between the keystrokes to mimic human behavior.
Anyone got a better method for background pickup that doesn't rely on Y-spamming?
You cant view this link please login.
You cant view this link please login.
You cant view this link please login.
Technical Breakdown
The setup is split into two components: a wrapper (StartMacro) and the core engine (Macro). Instead of just slamming keys into the active window, this uses win32api.SendMessage, allowing the bot to interact with the game while it stays in the background. You can farm on your main or watch movies while your twinks handle the mob pulling and item vacuuming.
Process Obfuscation (The Wrapper)
The author implemented a basic but effective trick to dodge simple process-name watchdogs. The wrapper script:
- Generates a random string (5-20 chars).
- Creates a temporary directory tempM.
- Copies the macro executable to this directory under the randomized name.
- Executes the randomized process and nukes the evidence once closed.
Core Features
- Process Selector — Pick your specific Metin2 client via UI.
- Auto-Attack — Holds the Spacebar via WM_KEYDOWN.
- Mob Puller — Repeats '4' (typically Bravery Capes/Umhänge) at fixed intervals.
- Auto-Pickup — Repeats 'Y' to clear the floor.
- UI Customization — Supports Dark/Light mode depending on system settings.
The Source Code
Code:
import os
import random
import string
import subprocess
import shutil
def generate_random_name(min_length=5, max_length=20):
length = random.randint(min_length, max_length)
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
def create_temp_dir(base_path):
temp_dir = os.path.join(base_path, "tempM")
if not os.path.exists(temp_dir):
os.makedirs(temp_dir)
return temp_dir
def create_and_run_exe(original_exe_path):
base_path = os.path.dirname(original_exe_path)
temp_dir = create_temp_dir(base_path)
random_name = generate_random_name()
new_exe_path = os.path.join(temp_dir, random_name + ".exe")
shutil.copy(original_exe_path, new_exe_path)
try:
process = subprocess.Popen([new_exe_path, random_name, "valid_start"])
process.wait()
finally:
if os.path.exists(new_exe_path):
os.remove(new_exe_path)
Code:
import win32api
import win32con
import win32gui
def send_keystroke(self, key, hold=False):
if hold:
win32api.SendMessage(self.hwnd, win32con.WM_KEYDOWN, key, 0)
else:
win32api.SendMessage(self.hwnd, win32con.WM_KEYDOWN, key, 0)
win32api.SendMessage(self.hwnd, win32con.WM_KEYUP, key, 0)
Security Warning
Keep in mind this is a User-Mode macro. If the server is running a decent anti-cheat that monitors SendMessage or checks for unnatural input frequency, you will get flagged. This is best used on servers with weak AC or for private filler twinks that you don't mind losing.
Always test on a VM or a throwaway account first. If you want to make this safer, add some random.uniform sleep intervals between the keystrokes to mimic human behavior.
Anyone got a better method for background pickup that doesn't rely on Y-spamming?