Game concepts
Events

Events

Events let exclusive monsters, resources and NPCs appear randomly in the world. When an event appears, you have a limited amount of time to get to the map to kill monsters, gather resources or buy/sell items to an NPC.

Each event has a spawn rate (chance to appear per minute) and a duration (how long it stays active).

NameContent
Bandit CampBandit Lizard (Monster) (opens in a new tab)
Portal (Demon)Demon (Monster) (opens in a new tab)
Portal (Efreet Sultan)Efreet Sultan (Monster) (opens in a new tab)
Cult of DarknessCultist Emperor (Monster) (opens in a new tab)
Strange ApparitionStrange Rocks (Resource) (opens in a new tab)
Magic ApparitionMagic Tree (Resource) (opens in a new tab)
RosenbloodRosenblood (Monster) (opens in a new tab)
Corrupted OwlbearCorrupted Owlbear (Monster) (opens in a new tab)
Corrupted OgreCorrupted Ogre (Monster) (opens in a new tab)
Corrupted PortalGrimlet (Monster) (opens in a new tab)
Fish MerchantFish Merchant (NPC) (opens in a new tab)
Timber MerchantTimber Merchant (NPC) (opens in a new tab)
Herbal MerchantHerbal Merchant (NPC) (opens in a new tab)
Nomadic MerchantNomadic Merchant (NPC) (opens in a new tab)
Gemstone MerchantGemstone Merchant (NPC) (opens in a new tab)

All Events

You can view the full list of all possible events (including spawn rate, duration, content and maps) using this request:

cURL
curl --request GET \
  --url 'https://api.artifactsmmo.com/events/' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json'
Javascript
const url = 'https://api.artifactsmmo.com/events/';
const options = {
  method: 'GET',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'
  }
};
 
try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Each event contains:

JSON
{
  "name": "Bandit Camp",
  "code": "bandit_camp",
  "content": {
    "type": "monster",
    "code": "bandit_lizard"
  },
  "maps": [
    { "map_id": 123, "x": 5, "y": -3, "layer": "overworld", "skin": "desert_1" }
  ],
  "duration": 30,
  "rate": 6
}
FieldDescription
content.typeType of content: monster, resource, or npc.
content.codeCode of the monster, resource, or NPC.
mapsList of possible maps where the event can appear.
durationDuration in minutes.
rateSpawn rate: the event has a 1/rate chance per minute of appearing.

View the API Reference (opens in a new tab)

Active Events

You can view all currently active events using this request:

cURL
curl --request GET \
  --url 'https://api.artifactsmmo.com/events/active' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json'
Javascript
const url = 'https://api.artifactsmmo.com/events/active';
const options = {
  method: 'GET',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'
  }
};
 
try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}

Each active event contains:

JSON
{
  "name": "Bandit Camp",
  "code": "bandit_camp",
  "map": { "map_id": 123, "x": 5, "y": -3, "layer": "overworld", ... },
  "previous_map": { "map_id": 123, "x": 5, "y": -3, "layer": "overworld", ... },
  "duration": 30,
  "expiration": "2025-01-15T13:00:00.000Z",
  "created_at": "2025-01-15T12:30:00.000Z"
}
FieldDescription
mapThe current map where the event is active (with event content).
previous_mapThe original map data before the event spawned (previous content/skin).
durationDuration in minutes.
expirationWhen the event will end.
created_atWhen the event started.

View the API Reference (opens in a new tab)