Your Character¶
The character is your main controller in the game. It moves, fights, gathers, crafts…
Create a Controller¶
char = client.character("MyChar")
This doesn’t create a new character in the game — it just gives you a remote control for an existing one.
Direct Actions¶
Movement¶
# By coordinates
char.move(x=0, y=1)
# By map ID
char.move(map_id=42)
# Transition (enter building, go underground, etc.)
char.transition()
Combat¶
# Simple fight
result = char.fight()
fight = result.fight
print(f"Result: {fight.result.value}") # "win" or "loss"
print(f"Turns: {fight.turns}")
# XP and gold earned
for cr in fight.characters:
print(f"+{cr.xp} XP, +{cr.gold} gold")
# Drops (loot)
for cr in fight.characters:
if cr.drops:
for drop in cr.drops:
print(f"Drop: {drop.code} x{drop.quantity}")
# Boss fight (with other players)
result = char.fight(participants=["Player2", "Player3"])
Rest¶
# Recover HP
result = char.rest()
print(f"+{result.hp_restored} HP")
Character Info¶
info = char.get()
# General
print(f"Name: {info.name}")
print(f"Level: {info.level}")
print(f"XP: {info.xp}/{info.max_xp}")
print(f"Gold: {info.gold}")
print(f"HP: {info.hp}/{info.max_hp}")
# Position
print(f"Position: ({info.x}, {info.y})")
# Skills
print(f"Mining: level {info.mining_level}")
print(f"Woodcutting: level {info.woodcutting_level}")
print(f"Fishing: level {info.fishing_level}")
# Inventory
for slot in info.inventory:
print(f" {slot.code} x{slot.quantity}")
Sub-Domains¶
Your character has action groups for each aspect of the game:
char.skills → Gathering, crafting, recycling
char.equipment → Equip / unequip items
char.bank → Bank (gold and items)
char.inventory → Use / delete items
char.ge → Grand Exchange
char.tasks → Tasks
char.trading → NPC and player-to-player trading
Each group has its own methods. They’re covered in the following pages!
Cooldowns¶
Every action in Artifacts MMO triggers a cooldown (wait time). By default, the SDK waits automatically before the next action.
char.move(x=0, y=1) # waits for move cooldown
char.fight() # waits for fight cooldown
char.fight() # waits for previous fight cooldown
# Everything is smooth, no time.sleep() needed!
If you want to disable automatic waiting:
# Globally (for all characters)
client.auto_wait = False
# For a specific character
char = client.character("MyChar", auto_wait=False)
# For a single action
result = char.fight(wait=False)
Tip
With auto_wait=False, you’ll have to manage cooldowns yourself
using wait_for_cooldown() or by catching errors.
Other Actions¶
Claim Pending Items¶
Items from achievements, GE orders, or events go to your pending items. Claim them with:
# Check pending items first
pending = client.my_account.get_pending_items()
for item in pending.data:
print(f"Pending: {item.code} x{item.quantity}")
# Claim by ID
result = char.claim_item(id=12345)
print("Item claimed!")
Change Skin¶
from artifacts.models.enums import CharacterSkin
char.change_skin(skin=CharacterSkin.WOMEN2)
Action History¶
logs = char.get_logs(page=1, size=10)
for log in logs.data:
print(f"{log.type.value} — {log.created_at}")
Next Step¶
Head to Inventory to manage items, then Skills for gathering and crafting.