0.2.0
Available in Discord
Get the build A character the server keeps, a server browser in the main menu, content a server streams to you as you join, companions, and a default gamemode that is a base for roleplay.
A server browser in the game’s own main menu, with Direct Connect, Browse, Local, Favorites and Recent tabs, search, filters and sorting. It reads the same MafiaHub masterlist as the servers page here, and joining a server starts from it.
Servers can bring their own content. A resource’s stream folder (loose files laid out as in Data) and its mods folder (plugins and their archives) are sent to each player as they join. The client checks them, unpacks them, mounts them as game data and loads the plugins through the game’s own content reload before it enters the world, so nobody installs anything by hand.
Level, XP, perks, perk points, S.P.E.C.I.A.L. and caps are the server’s record. The game’s own level-ups, perk chart and S.P.E.C.I.A.L. menu still run on the player’s machine; every change they make is reported, replayed against the server’s copy with each perk’s own rank, level and S.P.E.C.I.A.L. requirements, and put back if it does not hold up. Magazines and bobbleheads go through the same check.
For scripters, the character comes with seven events and the methods to match: award XP, set the level, grant or remove a perk, set or damage any actor value, open the perk chart or the S.P.E.C.I.A.L. menu, and refuse a change before it sticks. The whole character, inventory included, reads out as one document a gamemode stores wherever it likes and hands back on the next join. Keeping it between sessions is the gamemode’s call, since only the gamemode knows how it identifies a player.
The default gamemode is now a base for roleplay. A joining player waits at Red Rocket behind a login page while the camera flies over Red Rocket and Concord, then registers or logs in. Accounts and characters live in a SQLite database, passwords are hashed with a salt of their own, and five wrong passwords or five minutes without logging in end in a kick. Characters are saved on disconnect, every two minutes and when the gamemode stops.
Until a character has finished the creator, every login goes through it: the game’s own look editor, then its S.P.E.C.I.A.L. menu. The look is stored and put back on every later login, and the character’s name shows in the game’s own menus.
Accounts carry a staff rank (player, moderator, admin or owner). Commands ask for one, /help lists what a rank may run, and the debug tools are for admins. Plain chat is local speech under the character’s name, beside /me, /do, /s, /b, /ooc and /pm, and /pay hands caps to someone nearby.
NPCs can follow a player as a companion. The NPC becomes the leader’s companion the way the game makes one, every other client plays it back, and the server takes it along when its leader travels or walks far off, and lets it go when they leave. Scripts set and read the leader, and "/npc follow" does it from chat.
Fusion cores sync. The charge left in a suit is replicated, so a puppet’s empty core plays on every client, and each core a player loads, inserts or launches out is checked against the server’s inventory record and put to the scripts first. A refused core goes back to the inventory, and a charge rise the server cannot account for is put back.
Each stack of items keeps its condition. A fusion core with 40% of its charge left used to arrive at the server, a container or another player as a full one; now the condition travels with every move, drop, pick-up and saved character, and scripts can read it and give items with it.
Scripts can store a player’s look and put it back later, and name the character in its own game.
More of the server reaches scripts: NPCs and workshop items as classes, with events for an NPC being hit, attacking, dying, respawning or changing hands, and for building, moving and scrapping in a workshop. New events cover a player changing worldspace, firing a projectile, closing or changing a container, and the hour turning. An inventory change can now be refused, a teleport can cross into another worldspace or interior, and a player’s health can be set. The server API now runs to 34 globals and classes and 49 native events.
Client scripts get a LocalPlayer global with the player’s state, character and inventory, read-only queries on the world and the radio, and events for death, travel, power armour, weapons, menus, inventory, progression, objects, items and the workshop. They can also put markers on the compass and the Pip-Boy map, read the camera and turn a world position into a point on screen, play sounds, tint and shake the screen, and place objects only that player sees. Everything a resource creates goes when it stops.
Web views work. 0.1.0 shipped the API but the client never started the browser behind it, so every view failed to open. Views now draw under the nametags and take mouse and keyboard; a focused view keeps the input from the game and the cursor visible.
Resources can depend on npm packages, native addons such as better-sqlite3 included: the server stages a resource’s runtime dependencies alongside it.
The test resources 0.1.0 ran on every client that joined, with popups that paused the game, a camera and marker tour and fly-camera key binds, are gone. The default gamemode is the only resource a server starts with.
This build is handed out in the Discord rather than from a download page here. Join it to get the current one.

