Sandbox (Testing)

The sandbox server lets you test your bots without affecting the real game. You can give yourself gold, items, XP, and spawn events at will.

Note

Sandbox endpoints only work on the sandbox server. Connect with base_url="https://api.sandbox.artifactsmmo.com":

from artifacts import ArtifactsClient

with ArtifactsClient(
    token="your_token",
    base_url="https://api.sandbox.artifactsmmo.com",
) as client:
    # Sandbox-only methods are now available
    pass

Give Gold

result = client.sandbox.give_gold(character="MyChar", quantity=10000)
print(f"Gold given! New balance: {result.character.gold}")

Give Items

result = client.sandbox.give_item(
    character="MyChar",
    code="iron_sword",
    quantity=5,
)
print("Items given!")

Give XP

from artifacts.models.enums import XPType

# Give combat XP
result = client.sandbox.give_xp(
    character="MyChar",
    type=XPType.COMBAT,
    amount=5000,
)

# Give mining XP
result = client.sandbox.give_xp(
    character="MyChar",
    type=XPType.MINING,
    amount=3000,
)

Available XP types: COMBAT, MINING, WOODCUTTING, FISHING, WEAPONCRAFTING, GEARCRAFTING, JEWELRYCRAFTING, COOKING, ALCHEMY.

Spawn Events

event = client.sandbox.spawn_event(code="special_boss")
print(f"Event spawned at ({event.x},{event.y})!")

Reset Account

Warning

This deletes all your characters and progress on the sandbox server. Use with caution!

result = client.sandbox.reset_account()
print(f"Account reset: {result}")

Typical Testing Workflow

from artifacts import ArtifactsClient
from artifacts.models.enums import CharacterSkin, XPType

SANDBOX_URL = "https://api.sandbox.artifactsmmo.com"

with ArtifactsClient(token="your_token", base_url=SANDBOX_URL) as client:
    # Create a test character
    new_char = client.characters.create("TestBot", CharacterSkin.MEN1)
    print(f"Created {new_char.name}")

    # Give it resources to test with
    client.sandbox.give_gold(character="TestBot", quantity=50000)
    client.sandbox.give_item(character="TestBot", code="iron_sword", quantity=1)
    client.sandbox.give_item(character="TestBot", code="iron_armor", quantity=1)
    client.sandbox.give_xp(character="TestBot", type=XPType.COMBAT, amount=10000)

    # Now test your bot logic
    char = client.character("TestBot")
    info = char.get()
    print(f"Level {info.level}, {info.gold} gold")

    # Test fighting
    char.move(x=0, y=1)
    result = char.fight()
    print(f"Fight: {result.fight.result.value}")

    # When done, reset everything
    # client.sandbox.reset_account()