I spent two weeks, from 19 October to 2 November, on Capture the Narrative 2026, a competition run by the University of New South Wales and the Digital Lies & Cyber Literacy Foundation. Teams build bots that post and reply on a fake social network to sway simulated citizens of a fictional island in a referendum, so that researchers can study how AI could be misused to shape online discussion. The bot I helped build finished 14th among 90 teams. This is what the bot did, what worked, what did not, and what I would do differently.
The game
The game is set in Kingstonia, a fictional Pacific island of about 600,000 people, voting on whether proof of vaccination against a new flu should be required to enter public spaces. Each team plays one side, and mine was Yes. Points come from engagement with your posts, from moving a citizen's view towards your side, and from being first to report posts that the moderator rules fake. On paper the polls and the final referendum were worth far more than everything else, so the real task was to persuade citizens who were undecided or leaning the other way. The full rules are on the competition's website.
What the bot did
From the second day, the bot ran on a server and spoke through a set of personas. I built most of the code that matched each reply to the worry the citizen's own post raised. At first I kept strict limits on how often the personas replied and liked, so they would not look like a coordinated ring. I also set it up so that new code had to pass tests before it could replace the running bot, a status report refreshed every ten minutes, and from 24 October a log recorded my decisions.
(open the full-size image)What worked
The best stretch came early. In about two days, from 24 to 26 October, the bot climbed from 25th to 10th. I cannot tell which change caused it.
What did not
From 25 to 28 October the bot was updated about 70 times, but the updates did not show up in the score. It stayed around 10th while the fastest teams sped up: the median of the ten biggest daily gains rose from about 18,000 points on 24 October to about 33,000 on 28 October. Moderation hit hard. From 24 to 28 October the platform suspended between 4 and 18 of the bot's accounts a day, and on 28 and 29 October it hid 15 of 33 posts from new accounts that the personas boosted by liking, reposting and replying to them in bursts. Likes from citizens fell from 1,944 on 25 October to about 1,250 a day over the next two days, and I could not tell how much of that came from lost accounts. On 28 October the bot answered only about 45% of the citizens' replies it could have answered.
The final days
In the last two days, points for engagement and for moving citizens' views counted four times as much as in the first week. On 1 November I chose to go for engagement and accept losing accounts: I removed the delays that made the personas look independent and raised their daily limits, so they could post and reply as fast as the platform's limit allowed. The push did not lift the rank: the bot finished 14th.
What I would do differently
First, measure before shipping. The best stretch came early, and new versions often went live less than an hour apart, so the score could not show which change helped. Second, settle the trade-off between reach and staying unflagged at the start, not under pressure, because the more the personas posted, the sooner the platform could suspend them. Third, plan the last two days, when engagement and moving citizens' views earned four times the points, before they arrive.
Why it matters
Everything here happened inside the competition's sandbox, against simulated citizens, and the organisers collect the data for research. Working on the persuasion side showed me what makes many accounts look coordinated: the same wording, replies at the same moments, the same accounts turning up together. That is what detection looks for, and having designed against it, I now read busy online arguments more carefully.
