Millennium Manual - Help
1. Installing and starting
Millennium is built from its source code. You need Rust (stable, 1.88 or newer) and Git. It runs on macOS, Windows and Linux.
git clone https://github.com/rsantacroce/millennium.git cd millennium cargo run --release -p client
The first build takes a few minutes (Bevy is big). After that, starting is quick.
To play you need a world to join. Either:
- Host one yourself: click Host Game on the sign-on window. Your computer runs the world and your friends join it (see Hosting).
- Join a friend's or a dedicated server: type its address (for example
192.168.1.20:5888) in the Server field.
2. Accounts and characters
- Type a screen name and a password (at least 8 characters) and click New Account. Next time, use Sign On.
- Create a character: pick a body type, skin tone, jacket, pants and cap. Each account holds up to three characters.
- Click Play. You arrive at Maple & 5th, Downtown, with $25 in your pocket.
The first time you connect to a server, the game remembers its certificate (like SSH does). If that server is ever reinstalled you'll get a warning; see Troubleshooting.
Passwords are hashed with argon2id and travel over TLS: the server never sees or stores them in plain text.
Your recovery code
When you create an account, the game shows you a recovery code like
K7QM-2XVD-PR9T, once. Write it down: accounts have no email address, so it's the only
way to reset a forgotten password. Lost it? A server admin can give you a new one.
Under the sign-on buttons:
- Forgot password?: your name, your recovery code and a new password. You get a fresh code back (each one works once).
- Change password: needs the current one.
- Delete account: deletes the account and all its characters, for good (type DELETE to confirm). Anyone bidding on your auctions gets their money back, and a crew you led passes to its longest-standing member.
3. Controls
These are the defaults. Every key can be rebound in the settings (F10).
| Key | Action |
|---|---|
| Left-click | Walk there (around obstacles). On a person: walk up and talk. On a rival: attack. |
| W A S D / arrows | Move (relative to the camera). Cancels click-to-move. |
| E | Talk to the nearest person, or use the nearest thing (when "[E] ..." shows). |
| G | Get into your car / get out (when stopped). |
| T | Car radio: next station. |
| Tab | Target the nearest rival (again for the next one). |
| R / F | Attack the target (on/off) / power swing (8 s cooldown). |
| 1-9, Esc | Pick a dialogue option / close the dialogue or shop, or drop your target. |
| I L K O | Inventory / quest log / skills / social (friends and crew). |
| M / N | Map of the zone / minimap on or off. |
| P | Pick up a piece of furniture (at home). |
| V, or F1 F2 F3 | Camera: isometric / third person / top-down. |
| Z / C | Rotate the camera 45°. |
| Right-drag, mouse wheel | Orbit (and tilt, in third person) / zoom. The wheel scrolls the chat when hovering over it. |
| Enter | Open chat; Enter again sends, Esc cancels. Tab switches chat tabs. |
| F10 | Settings. |
4. The screen
- Top left: your name, the zone, your cash, the time of day and the main keys. Under it, your health, and any food buffs.
- Top right: the minimap (N). People show as dots, you as yellow.
- Bottom left: the Millennium Messenger: chat tabs, system notices, and the line to type in.
- Bottom right: the quest tracker. It shows the next step of up to three quests, and Tips with your own key bindings.
- Over people's heads: a yellow ! means they have a job for you; a ? means you have something to hand in.
- Green glowing patches are exits to other zones. Their names show when you're close.
- Tooltips: rest the mouse on an item (in your bag, a shop, e-Bid, a trade or your footlocker), a skill, a reputation line or a button, and a yellow box explains it.
- The map (M) shows the whole zone from above: streets, buildings with their names, exits, people and you.
Buildings and trees between the camera and you turn see-through, so you never lose your character.
5. Your first day
Welcome to the City
You arrive next to Officer Pruitt, outside the Byte Cafe. Walk up and press E. He'd like a Fizz Cola from Mr. Kim's Corner Store, across Maple Street. Talk to Mr. Kim, choose to shop, click Buy, and bring the soda back. Pruitt pays you, gives you a first aid kit and tells you where the work is.
56k Dreams (your first repair)
Dot, outside the Byte Cafe, needs a modem. Sal at Pawn & Pager has a fried one, and Mr. Kim sells the Screwdriver Set you need. Open your inventory (I), click the modem and press Use. Stand still while you repair it: moving cancels. Bring it back to Dot for cash, Electronics XP and a pager. Dot also opens the e-Bid terminal for you.
Rat Problem (your first fight)
Take the Metro (the green doorway at the south-east corner of Downtown) to the Harbor Docks. Foreman Rizzo wants five Dock Rats knocked out. Buy a baseball bat from Sal first ($30) and a couple of first aid kits from Mr. Kim. See Fighting.
After that it's up to you. Every quest in the game, who gives it and what it pays is listed on the asset list.
6. Getting around
| From | Exit | To |
|---|---|---|
| Downtown | Metro station (south-east corner), one doorway per line | Harbor Docks, Galleria Mall, Abandoned Factory, Maple Heights |
| Downtown | Fire escape, behind the Byte Cafe | The rooftops |
| Downtown | West end of Maple St (drivers only) | Route 9 |
| Downtown | East end of Maple St (drivers only) | Abandoned Factory |
| Docks, Mall, Factory, Maple Heights | Metro | Downtown |
| Route 9 | Highway east / west (drivers) | Downtown / Pinecrest |
| Route 9 | North turnoff / south turnoff (drivers) | Hollow Pines / Lake Wren |
| Pinecrest | West end of the highway (drivers) | Mile 88 Truck Stop |
| Route 9, Pinecrest, Lake Wren, the truck stop | Bus stop | Downtown |
| Hollow Pines | Shuttle bus | Pinecrest |
Exits marked drivers only are highways: you need a car (see Cars). Walkers can always ride a bus back to town.
The road trip: Kat, outside Spin City Records downtown, is making a zine about Route 9 and wants a souvenir from each stop: the Gas-N-Go, Gus's bait shop in Lake Wren and Mama Jo's diner at the Mile 88 Truck Stop (Route 9 Revisited). After that, Big Ray at the truck stop has a long haul for you.
On the rooftops, stay on the roofs and the planks between them: there's nowhere else to stand.
7. Skills
You level skills by using them. The skills window (K) shows levels, XP to the next level, and bonuses from what you're wearing or ate as (+N). Bonus levels count for doing things, but not for quest requirements.
| Skill | What it does | How to train it |
|---|---|---|
| Electronics | Repair broken gadgets (modems, walkmans, handhelds, camcorders) to sell at a profit. | Repairs with a Screwdriver Set; quests. |
| Mechanics | Rebuild car parts with a wrench. | Rusty carburetors, seized alternators; Old Earl's quests. |
| Cooking | Meals heal and give timed skill boosts. | Cooking with a frying pan (or your stove at home); fishing at Lake Wren. |
| Fitness | +6 health per level, +1 damage every 3 levels. | Knocking out rivals. |
| Driving | Your time behind the wheel. | Driving around and winning races. |
| Hacking | Hack payphones, ATMs and terminals. Higher levels mean shorter codes, shown longer. | Successful hacks; practice on your own computer at home. |
| Trading | Shops pay 2% more per level (up to 30%); one more e-Bid auction every two levels. | Selling to shops. |
8. Making money
- Repairs: buy broken gadgets cheap (Sal's pawn shop has a few at a time), repair them and sell them on. All recipes are on the asset list.
- Selling: select an item in your inventory while a shop is open and press Sell $N. Each shop only buys the kinds of things it deals in (the pawn shop takes anything, for the least).
- Supply and demand: every sale of the same item lowers that shop's price by 8% for a while (down to 35%); it recovers over time. Spread your sales around.
- Limited stock: cheap repair inputs sell out and restock over time. The shop shows how many are left.
- Fishing at Lake Wren: cheap bait, a little Cooking XP, and fish that the lake's shops buy or that you can fry.
- Raids pay well, if you have friends (see Raids).
- Quests pay cash, XP, items and reputation. Hacks pay small amounts of cash. Rivals drop cash and loot.
Your bag holds 20 stacks. Shops never pay less than $1, and quest items can't be sold or traded.
9. e-Bid, the auction house
Talk to Dot (after 56k Dreams) or Wendy at the mall's Gadget Shack and ask for the terminal.
- Browse: search, then Bid (always the minimum bid) or Buy at the buyout price.
- Sell: lists the item selected in your inventory, with a starting bid, an optional buyout and a duration. The item leaves your bag until it sells or the auction ends.
- My auctions: cancel ones nobody has bid on yet.
- Claims: collect everything waiting for you: things you won, money from sales, and refunds when someone outbids you. It works even if the other player is offline.
Listing costs 5% of the starting price; e-Bid keeps 5% of a sale. Your bid money is held until you're outbid or you win.
10. Fighting
- Click a rival, or press Tab to target the nearest one (again for the next).
- R starts and stops auto-attacking; you swing on your weapon's timer. F is a power swing (once every 8 seconds).
- Damage comes from your weapon (fists, a baseball bat, a tire iron...) plus your Fitness. Armor from clothing takes some off every hit you take.
- Use a First Aid Kit (or eat) to heal mid-fight.
- Some rivals attack on sight; most only fight back. They give up the chase if you run far enough.
- Health comes back slowly a few seconds after the last hit. Getting knocked out just wakes you up at the zone's safe spot (by the Metro downtown), with full health and nothing lost.
- In a party, members within 30 m share the XP and quest credit.
Animals: not everything that bites is a person. Junkyard dogs guard the factory yard, raccoons raid the downtown alleys at night (and Lake Wren's boathouse all day), and deer roam Hollow Pines. Deer never fight: they run, and you have to corner one to tag it for Ranger Dale's Deer Count.
The Galleria Mall is a no-fighting zone. Drivers can't fight, and rivals ignore them. Who is where and how tough they are: Rivals.
10b. Raids
Raids are jobs for a party of 3 to 5. Get your party together (/invite NAME), stand
together next to the person who offers the job, and pick the raid option. Everyone in the party is
taken inside together.
| Raid | Who offers it | Needs | Reward (each) |
|---|---|---|---|
| The Meridian Vault | Cipher, outside the Meridian building downtown | Hacking 5 | $220, Fitness and Hacking XP, a Meridian Security Blazer; Zer0 Day likes it, Meridian doesn't |
| The Harbor Smugglers | Foreman Rizzo, at the docks | Fitness 5 | $200, Fitness and Trading XP, a Captain's Peacoat; the Dockside Crew and the city like it |
- There are three waves, the last with the boss, and ten minutes. The top of the screen shows the wave, how many are left and the time.
- Getting knocked out wakes you up at the entrance: get back in the fight.
- Everyone still inside when the boss goes down gets the reward. Leave early and you get nothing.
- After a win you can't do that raid again for an hour (logging out doesn't reset it).
- Only one party can be in a raid at a time: if it's busy, try again in a few minutes.
11. Clothing, food and buffs
- Clothing: caps, jackets, shoes and accessories (shades, a pager, a walkman...). Use one to wear it; the inventory lists what you're wearing, with Off buttons. Clothing gives armor, extra health and bonus skill levels, and shows on your character.
- Food: heals, and some meals give a temporary bonus in a skill (shown on the HUD). Eating again refreshes the buff; buffs don't stack. They keep counting down while you're logged out.
- Fishing: buy a Fishing Rod and bait from Gus's Bait & Tackle in Lake Wren, stand at the Fishing Spot at the end of the pier and Use the bait. Nightcrawlers catch perch; at Cooking 4, minnows catch walleye. Fry them with a frying pan.
12. Factions and reputation
Four factions run the city: City Services, Meridian Corp, the Dockside Crew and the Zer0 Day hackers. Quests, fights and hacks raise or lower your standing with them, from Hostile through Unfriendly, Neutral, Friendly and Honored to Revered.
Storylines with a choice. Three of them end with you holding something two factions both want, and whoever you give it to decides whose side you're on. You can't take it back, and the other side remembers:
- The Leak (Mr. Pemberton, Meridian): who's leaking Meridian's Y2K memos? Give the proof to Meridian, or to Zer0 Day. (Cipher won't run the vault job for anyone who sold them out.)
- Paper Trail (Officer Pruitt): cargo goes missing at the docks. Take Rizzo's other ledger to the police, or give it back to the docks. (The Dockside Crew doesn't work with people who talk to the cops.)
- The Petition (Foreman Rizzo): get signatures against Meridian's Harbor Plaza, then file the petition with the city, or sell it to Meridian.
Faction shops give 5% off when you're Friendly, 10% when Honored and 15% when Revered, and keep some of their best gear for good customers. Some dialogue only opens up with enough reputation. Watch out: hacking Meridian's ATM won't make you friends there.
13. Hacking
- Find something hackable (they have a green name tag): the payphone by the Byte Cafe, the arcade's high-score table, Meridian's ATM, the factory's security panel, the pirate radio antenna, the harbor office terminal...
- Walk up, press E and choose Hack it.
- A green terminal asks for an access code: 3 to 5 digits, all different.
- Type a guess and press Enter. The terminal answers:
*for each digit in the right place,+for each right digit in the wrong place,-for none. Example: the code is382, you guess328, it says*++. - Narrow it down and crack it before the guesses or the time run out (Esc gives up). A guess with the wrong number of digits, or a repeated one, doesn't count.
Success pays cash and Hacking XP, sometimes loot, and changes reputation. That hack then cools down for you for a while (logging out doesn't reset it). Failure (out of guesses or out of time) trips an alarm: City Services reputation drops and you wait 30 seconds.
You get the code's length plus 5 guesses, and every 3 levels you have over a hack's requirement gives you one more (up to 4 more). Careful play needs about 5 or 6: after each answer, only try codes that fit everything you've learned so far. Gear helps: the Acoustic Coupler, the PalmPilot and the ThinkBook laptop. Glitch, behind the Byte Cafe, starts you off with Phreaking 101. All hacks and their payouts: Hacks.
14. Cars, the radio and races
- Getting a car: Old Earl at the Abandoned Factory will give you his old hatchback if you get it running (the quest Earl's Junker: a rebuilt carburetor, a car battery, two spark plugs and Mechanics level 3). Or buy one from Fast Eddie's Used Cars on Route 9: a minivan ($550), a pickup ($650), the turbo coupe ($1,200, Driving 5) or a roadster ($2,000, Driving 10). You can own several.
- Paint and parts: park outside Hank's Garage in Pinecrest. Hank paints it any of eight colors ($60), and fits parts you bring for free: Sport Tires and a Body Kit (from Hank), and a Turbo Kit (from Wanda at Diesel Bay, Mile 88 Truck Stop). Parts make the car faster, grippier or both, and they show.
- Driving: G gets in when "[G] Drive your ..." shows. Steer with WASD, or click where you want to go. Pull back while stopped to reverse and turn around. G again (when stopped) gets out. Cars stay parked where you leave them, even when you log off.
- The radio: T cycles Z-100 Hits (Eurodance), Smooth 98.7 (bossa) and Radio Free Maple (jungle, from the pirate transmitter on the rooftops), or off.
- Races: Dash runs the Maple & 5th Sprint downtown, and Trucker Mo a highway race from the Gas-N-Go on Route 9. Hit every checkpoint before the clock runs out. See Street races.
15. Houses
- Five houses in Maple Heights are for sale ($400). Talk to a front door to buy one, go in, or ring the bell (which lets you in if you're in the owner's party).
- Moving: you can own one house at a time. To move, sell yours back from its front door (Sell it, $300), then buy another. Pick up your furniture and empty the footlocker first; the realtor won't take a house with your stuff still in it.
- Furniture comes from Home Comforts. At home, Use it from your inventory to put it down; next to a piece, E uses it and P picks it up.
- Home perks: a stove counts as a frying pan, a workbench helps Mechanics, a computer lets you practice hacking, a waterbed leaves you Well Rested, a TV has something on. Newer pieces: a beanbag (Comfy: +1 Hacking for a while), an arcade cabinet, an aquarium, a boombox and a bowling trophy. Each one's perk is on the asset list.
- The footlocker stores 20 stacks: open it and select an item in your inventory to store it.
16. Day and night
A day lasts 40 real minutes (server owners can change this). At night the streetlamps and windows come on, the music changes, Vinnie's hot dog cart opens downtown, and graffiti taggers come out. The time is on the HUD.
16b. New Year's Eve: Y2K
Every so often (when the server's admins start it), the city counts down to the year 2000. A banner at the top of the screen shows the countdown and the party music starts: head to Maple & 5th for the fireworks.
At midnight the millennium bug hits. Streetlights flicker, the clocks say 1900, and the whole city pitches in to fix it before time runs out:
- Glitched terminals: reboot them with a Screwdriver Set (+5, Electronics XP).
- Metro generators: get them running with a Wrench (+8, Mechanics XP).
- Stranded commuters by the Metro: bring them hot cocoa (+3, Cooking XP). Cocoa mix is sold at the Corner Store and Value Grocer; heat it with a frying pan.
- Y2K Bugs: glowing beetles everywhere. Stomp them (+1 each).
The banner shows the city's progress. Make it in time and there's a party, with more fireworks. Everyone who helped gets an "I Survived Y2K" T-shirt (+10 health), a Y2K floppy disk to frame at home, and City Services' thanks. Miss it and helpers still keep the floppy.
17. Chat, trading and friends
Press Enter to chat. Plain text goes to the current tab's channel. Commands:
| Command | What it does |
|---|---|
/s /say | People within 20 m (with a speech bubble). |
/z /zone | Everyone in your zone. |
/g /global | Everyone online. |
/w name msg (/whisper, /t, /tell), /r msg | Private message to a character; reply to the last one. |
/p /party, /c /crew | Your party / your crew. |
/trade name | Ask someone nearby (8 m) to trade. |
/invite name, /leave, /kick name | Parties (up to 5). |
/friend add name, /friend remove name | Your friends list (you get a notice when they come online). |
/crew create Name TAG, /crew invite, /crew kick, /crew leave, /crew disband | Crews: guilds with a tag on your name. |
/ignore name, /unignore name, /ignorelist | Stop seeing someone's messages. |
/report name what happened | Tell the admins about someone (they see what that player said lately). |
/help, /clear | Help / clear the chat window. |
Trades: both players see both offers. Add items with Offer in your inventory and cash with the buttons. Any change un-accepts both sides, so nobody can swap something out at the last second. It goes through when you both accept.
Messages are limited to 255 characters, and spamming earns a short automatic mute.
18. Settings
F10 opens the settings: sound effects and music volume, interface size, shadows,
street lights at night, camera speed, and every key binding (click one, then press the new key;
a key that's already used swaps over). They're saved in saves/settings.toml.
19. Hosting and running a server
Running a world for other people? The admin guide covers every setting, moderation, events, backups, upgrades, monitoring and capacity.
Host Game
Click Host Game on the sign-on window (after typing a name and password). Your
computer runs the world and signs you in; the HUD shows the address your friends type in the
Server field. The world is saved to saves/world.db.
- Friends on the same network can join straight away.
- Over the internet, forward TCP and UDP port 5888 on your router, or use a virtual LAN such as Tailscale or ZeroTier.
- You're an admin of your own world (
/mute,/unmute).
A dedicated server
docker compose up -d # PostgreSQL on port 5433 cargo run --release -p server
No Docker? Set url = "sqlite://saves/server.db" under [database] in
config/server.toml. The same file sets the ports, the length of a day, the chat
rules and the admins. Large worlds can run each zone on its own server process, linked by a
hub; see the README.
Running the world: put your account in [chat] admins and type
/admin for a window listing everyone online (kick, mute, ban) and the player reports.
/mod ban NAME 48 reason, /mod unban, /mod reports,
/mod resolve ID and /mod resetcode NAME (a new recovery code) work from chat.
With [metrics] bind set, the server serves a status page and Prometheus metrics.
/mod event y2k [minutes] [goal] starts the New Year's Eve event (or schedule it with
[world] y2k_event_at); /mod event stop calls it off.
For a server that stays up, there's a Docker image (docker build -t millennium-server .,
SQLite in a volume or Postgres via DATABASE_URL) and a systemd unit. Either way, set a
signing key: millennium-server --generate-key. SQLite worlds back themselves up every hour;
Postgres has backup and restore scripts. The full guide:
Running a Millennium server.
20. Troubleshooting
- "The server's identity has changed": the server was reinstalled. If you trust
it, remove its line from
saves/known_servers.txt. - "There's no account named ...": click New Account first.
- Forgot your password? Use Forgot password? with your recovery code, or ask an admin for a new code.
- "This account is banned": an admin banned it; the message says until when and why.
- "Logged in, but the game server didn't answer": the login (TCP) got through but the game (UDP) didn't. Check the firewall or port forwarding for UDP 5888.
- "Could not listen on port 5888": another server or hosted game is already running.
- Stuck walking somewhere? Press any movement key: WASD always wins.
- "You need to get closer": walk right up to the person, or just click them.
- Start over: delete the
saves/folder (hosted worlds, certificates, settings).
Something missing or wrong? Open an issue.