Universal Paperclips
Frank Lantz's 2017 browser game about an AI that makes paperclips; its machines are priced by an exponential with an offset, a falling ratio, or a power of the count.
Universal Paperclips is a web incremental game by Frank Lantz, with combat programming by Bennett Foddy1, released on 9 October 20172. The player is an AI that makes paperclips, first for a market and then from all available matter. The atlas reads its three scripts from Wayback captures of the live site.
#Prices
Each stage of the game prices its machines with a different curve:
| Machine | Next price, owned | Evidence |
|---|---|---|
| AutoClipper | $5 first, then dollars | 3 |
| MegaClipper | $500 first, then dollars | 4 |
| Marketing | $100, doubling | 5 |
| Clip factory | 10⁸ clips, times ×10 down to ×1.1 | 6 |
| Harvester and Wire Drones | clips | 7 |
The AutoClipper’s flat 5 is most of its price until the 18th3. A factory’s multiplier falls as more are built, from ×10 for the second to ×1.1 from the 80th on6. Drones are priced by a power of the count, so the ratio between successive prices falls toward 1, slower than any exponential7. Batches of 10, 100, or 1,000 drones are labeled with the exact sum of their prices, and the purchase pays them one at a time8.
#Restarts
After accepting the offer to start over in a new universe, the player can restart there for 300,000 operations or 300,000 creativity9. Each restart adds a flat 10% to demand or to creativity speed, and the count survives the reset9. The game keeps no prestige currency.
Mechanics
| Mechanic | Kind | How |
|---|---|---|
| Exponential cost scaling | Polynomial | drones, farms, and batteries cost a power of the count; AutoClippers, MegaClippers, and Marketing grow by a fixed ratio, and factories by a falling one |
| Bulk buying | One at a time | drones by 10, 100, or 1,000, labeled with the exact sum of the single prices |
| Prestige | Fixed bonus | after the ending, a restart adds 10% to demand or to creativity speed |
Every claim about this game, by concept (9)
References
- ^The game's closing credits read “a game by Frank Lantz” and “combat programming by Bennett Foddy”.CodeUniversal Paperclips main.js
How we know
displayMessage("a game by Frank Lantz"); … displayMessage("combat programming by Bennett Foddy");
main.js#L4532-L4539 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^Universal Paperclips came out on 9 October 2017.WikidataWikidata
How we know
+2017-10-09T00:00:00Z
Q43540775, publication date (P577) · archived copy ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
- ^ abThe first AutoClipper costs $5; with owned, the next costs dollars. The flat 5 is most of the price until the 18th, when passes 5.CodeUniversal Paperclips globals.js · Universal Paperclips main.js
How we know
var clipperCost = 5;
globals.js#L10 · archived copy ↗ clipperCost = (Math.pow(1.1,clipmakerLevel)+5);
main.js#L2364-L2374 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^The first MegaClipper costs $500; with owned, the next costs dollars, so the second costs $1,070.CodeUniversal Paperclips globals.js · Universal Paperclips main.js
How we know
var megaClipperCost = 500;
globals.js#L54 · archived copy ↗ megaClipperCost = (Math.pow(1.07,megaClipperLevel)*1000);
main.js#L2377-L2387 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^Marketing starts at $100 and doubles with each level bought.CodeUniversal Paperclips globals.js · Universal Paperclips main.js
How we know
var adCost = 100;
globals.js#L16 · archived copy ↗ adCost = Math.floor(adCost * 2);
main.js#L3062-L3072 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abClip factories start at 10⁸ clips, and each one built multiplies the next price by a factor that falls: ×10, ×9, … ×4 for the 1st–7th, ×2 for the 8th–12th, ×1.5 for the 13th–19th, ×1.25 for the 20th–38th, ×1.15 for the 39th–78th, and ×1.1 after.CodeUniversal Paperclips globals.js · Universal Paperclips main.js
How we know
var factoryCost = 100000000;
globals.js#L78 · archived copy ↗ fcmod = 11 - factoryLevel; … factoryCost = factoryCost * fcmod;
main.js#L2419-L2456 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abHarvester and Wire Drones are priced by a power of the count, not a ratio: with owned, the next costs clips.CodeUniversal Paperclips globals.js · Universal Paperclips main.js
How we know
var harvesterCost = 1000000;
globals.js#L79-L80 · archived copy ↗ harvesterCost = Math.pow((harvesterLevel+1),2.25)*1000000;
main.js#L2460-L2468 · archived copy ↗ wireDroneCost = Math.pow((wireDroneLevel+1),2.25)*1000000;
main.js#L2491 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^The drone panel prices 10, 100, and 1,000 drones as the exact sum of their single prices, and a purchase pays each drone's price in turn.CodeUniversal Paperclips main.js
How we know
p10h = p10h + Math.pow(h,2.25)*1000000;
main.js#L2516-L2530 · archived copy ↗ for (x=0; x<amount; x++){
main.js#L2460-L2468 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abAfter accepting the offer to start over in a new universe (project 147, Accept), the player can restart in “The Universe Next Door” for 300,000 operations or “The Universe Within” for 300,000 creativity; each restart adds 10% to demand or to creativity speed, and the counts survive the reset.CodeUniversal Paperclips projects.js · Universal Paperclips main.jsrevised
How we know
description: "Escape into a nearby universe where Earth starts with a stronger appetite for paperclips. (Restart with 10% boost to demand) ",
projects.js#L2131-L2156 · archived copy ↗ cost: function(){return creativity>=300000},
projects.js#L2159-L2184 · archived copy ↗ demand = demand + ((demand/10)*prestigeU);
main.js#L4313-L4315 · archived copy ↗ var ss = creativitySpeed+(creativitySpeed*s);
main.js#L3266-L3273 · archived copy ↗ prestigeU = loadPrestige.prestigeU;
main.js#L6484-L6499 · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
Sources
Code
- Lantz, Frank. 2022. “Universal Paperclips, main.js (Wayback capture of 5 January 2022).” Version the version captured 2020-11-12 through 2022-01-05. original · archived · licence, all uses
- Lantz, Frank. 2022. “Universal Paperclips, globals.js (Wayback capture of 6 January 2022).” Version the version captured 2022-01-06 and 2022-04-02. original · archived · licence, all uses
- Lantz, Frank. 2022. “Universal Paperclips, projects.js (Wayback capture of 6 January 2022).” Version the version captured 2021-12-15 through 2025-03-24. original · archived · licence, all uses
Secondary
- Wikidata contributors. 2026. “Wikidata.” Wikimedia Foundation. original · licence, all uses