🌍 Become a marimo ambassador!

Apply
25 / 103
World of Warcraft Bot Detection

World of Warcraft Bot Detection

by marimo team

Interactive visualization for detecting bots in WoW player data using session length analysis.

About this notebook

This notebook finds bot accounts in the World of Warcraft avatar dataset. It downloads the dataset as one Parquet file and processes it with Polars. A pipeline casts the types, removes rows with corrupt class and race values, and splits each player's records into sessions. A gap of more than 30 minutes between two records starts a new session. The notebook treats a player with a very long session as a bot and removes all of that player's rows.

A slider sets the maximum session length, from 2 to 24 hours. When you move the slider, marimo re-runs the cells that depend on it. Those cells apply the bot filter and draw an Altair line chart. The chart compares the number of records per day in the original data with the number in the filtered data.

The pipeline has a fixed part and a reactive part. The fixed part does not depend on the slider, so marimo computes it once and reuses the result. The plot function carries the mo.cache decorator, so the notebook stores one chart per threshold value. The dataset logger records each player every 10 minutes, and the bot filter uses that rate to convert hours into row counts.

Related notebooks