Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗The home of the Crawl 1st Edition tabletop role-playing game: the Character Creator, classes, races, backgrounds, spells, crafting, items, the glossary and the Crawl Tabletop. On the Spells page you can filter by class or by magic source (Arcane, Divine, Primal, Occult), open any spell to read its card and its +1 to +10 advancements, and export a card as a PNG or JPEG.
Crawl-1st-Edition-Installer.zip, right-click it and choose Extract All.The app opens when the install finishes and adds Desktop and Start menu shortcuts.
In the app you can edit spells, add new ones and export cards; changes save
automatically to %APPDATA%\Crawl Spell Compendium\spells.json (the folder keeps the app's
original name so spells saved by earlier versions carry over).
Run Uninstall.bat to remove the app; your saved spells are kept.
Click Admin (right side of the black header on the Spells page) and enter the admin password to unlock
Edit on every spell, plus Add spell, Import data and Export data.
Save changes writes crawl-spells.json to this repo, and the public site
updates for everyone in about a minute. Visitors without the password see a
read-only site.
How it works: the site has no server, so the password protects a GitHub access
key instead. admin.json holds that key encrypted with AES-256-GCM, using a key
derived from the password with PBKDF2-SHA256 (600,000 rounds). Typing the right
password decrypts the GitHub key in your browser for that tab only.
First-time setup / changing the password
Because admin.json is public, the password is what keeps the key safe: use a
long one. Repeat the setup any time to change the password or replace an
expired key.
Signed in as admin, open Glossary or Conditions. Every entry gets an
Edit button, and Add entry adds a new one. Put an entry in the
Conditions section to show it on the Conditions page too; any other section
name (for example Keywords) makes a new section on the Glossary page. Click
Save changes to write crawl-glossary.json.
Glossary names show in red, underlined, in spell text (when a spell isn't being edited). Hover over one, or tap it on a phone, to see its tooltip. Under Tooltip words, click Create tooltip word to add other words (for example Target Area), each with its own tooltip text; leave the text empty to show the whole entry.
In the editor, leave a blank line between paragraphs. The Text color sidebar
appears on the right while you edit: select text in any box and click a color. This
adds [color=#hex]...[/color] around it; Remove color takes it off. The preview
shows the result.
Searching the glossary lists the best matches first: entries whose name matches, then tooltip words, then entries that only mention the word.
Every glossary section gets its own page and a link in the Glossary menu
(for example Combat Rules → glossary.html?s=combat-rules). Typing a new
section name on an entry creates the section.
The Races page lists each race with its description, ability score
increases, starting proficiencies, languages, features (name in red, then what it
does) and any extra details such as Size or Speed, followed by its subraces. Signed
in as admin: Add race, Edit on a race, Add a subrace to … under a race,
and Edit on a subrace. Saves to crawl-races.json.
creator.html builds a character in ten steps, Baldur's Gate style: Race,
Class, Background, Abilities, Skills, Proficiencies, Spells, Equipment,
Appearance and Name. A description panel on the right shows whatever choice
you point at. The steps pull from the rest of the site:
crawl-races.json.crawl-spells.json, filtered by the class's magic source.crawl-items.json, priced in the same (G)/(S)/(C) money.Ability scores roll 4d6 and drop the lowest, with Reroll, Store, Recall and click-to-swap; they can also be typed in by hand. Proficiency text is read automatically:
Finishing opens a three-page character sheet laid out like the paper one. Every box on it can be typed into, and Print or save as PDF fits each page on one letter page. Characters are saved in the browser, and Save to file / Open a character file moves them between devices.
Classes come from the Classes page and backgrounds from the Backgrounds page, so anything added there can be chosen in the creator. In the creator:
Signed in as admin, Edit creator rules sets the standard starting wealth,
starting skill rank, highest starting spell rank, passive base and suggested
languages. These save to crawl-creator.json.
The Classes page shows each class with its class chart on the left (Level,
Max Pool, Action Die, Features) and a scrolling box of its features on the right;
click a feature in the chart to jump to it. Below that are hit die and hit
points, Saving Throws, Starting Skill Proficiencies, Skill Points, other
proficiencies, languages, magic source and Equipment Loadouts with the Starting
Currency alternative, then subclasses. Signed in as admin: Add class,
Edit (with Fill in levels 1 to 20 for the chart, features with the level
they're gained, and loadouts built from Items page gear), and Add a subclass.
Saves to crawl-classes.json.
Each class also has Roll for Starting Currency (for example 4d8 (G)), rolled
when a player reaches Equipment in the creator and added to the Starting Currency,
and Spellcasting details for casters: a Prepared spells formula, the highest
spell Rank formula (formulas can use STR…CHA modifiers, level, floor(),
ceil(), max(), min()), the Rank spells start at, the Rank Major and Minor
spells start at, the levels the Major and Minor are chosen, the skill-point cost
per Rank for the Opposing School, and the list of schools with their Opposing
Schools. The creator uses these to ask for the Major (and Minor), tag spells as
Major / Minor / Opposing, let skill points raise spell Ranks, and fill Prepared
spells, Arcane Major/Minor and spell Ranks, DCs and attack bonuses on the sheet.
Backgrounds have separate Skill, Weapon, Armor, Trade Skill and Language Proficiency fields, and both classes and backgrounds have Proficiency choices: "Choose N skills / saving throws / weapon or armor proficiencies / trade skills / languages from" a group you tick. The creator shows these as pick-lists.
In the creator, weapon and armor proficiency can be bought for 3 skill points per type (Simple, then Martial, then Exotic; set under Edit creator rules). Bought proficiency starts at rank +0 and can then be raised with skill points.
Charts in descriptions: while editing, the sidebar's Insert a chart button
adds a small chart: [table] … [/table], one row per line, cells split by |,
the first row is the heading. Select tab-separated lines first to turn them into
a chart. Charts work in any description on the site.
The Backgrounds page works the same way for backgrounds: skill and other
proficiencies, languages, starting gear, starting wealth and features. Saves to
crawl-backgrounds.json.
The Items page is a chart grouped by category: Weapons (by weapon type), Armor
(by armor type, then slot), Consumables, Crafting Materials and Magic Items. Each row shows the
item's name, rarity, a Magic? check box, value and weight; click it to see its properties, weapon actions,
description and crafting recipe. Signed in as admin, click Edit on any row, or
use Add item. The Items menu opens one category at a time (Weapons, Ammunition, Armor,
Consumables, Materials, Magic Items), e.g. items.html?c=weapons.
The Crafting page is a chart of recipes by profession (Recipe, Yield, DC, TC,
Time). Click a recipe to open its card, in the same layout as the Crafting
Compendium, with the item it yields shown beside it (category, rarity, value,
weight and properties come straight from the Items page). The card shows: tier badge, prerequisites, material cost, workstations,
time, DC and TC, servings or batch, yield, features and the quote. Materials and
yields link to their items. Typing a new item name in a recipe creates that item
(under Crafting Materials). Both pages save to crawl-items.json.
Signing in as admin lasts for the browser tab, across all pages, until you click Admin · Sign out or close the tab.
The spell list lives in crawl-spells.json.
crawl-spells.json,
then replace the file of the same name in this repo (on GitHub: open the file,
click the pencil or Add file → Upload files, and commit). The website shows
the new list within a minute or two.| Path | What it is |
|---|---|
index.html | The GitHub Pages website (read-only, loads crawl-spells.json) |
crawl-spells.json | The spell list |
src/page.html | The page template shared by the website and the app |
crawl-glossary.json | The glossary entries (all the conditions, plus any keywords you add) |
src/glossary.js | The Glossary and Conditions pages: search, and admin editing |
crawl-items.json | Items and crafting recipes |
src/catalog.js | The Items and Crafting pages |
crawl-races.json | Races and subraces |
src/races.js | The Races page |
crawl-creator.json | Character Creator rules |
crawl-classes.json | Classes, subclasses, class charts and loadouts |
crawl-backgrounds.json | Backgrounds |
src/classes.js | The Classes and Backgrounds pages |
src/crawldata.js | Class and background data shared by those pages and the creator |
src/creator.js | The Character Creator page and character sheet |
src/editkit.js | The Text color sidebar shared by the editing pages |
tools/sitekit.py | The top navigation bar and the Glossary and Conditions page layouts |
app/ | The Windows app (Electron) |
installer/ | Install and uninstall scripts for Windows |
downloads/ | The ready-to-download installer zip |
tools/build.py | Rebuilds index.html, app/index.html and the installer zip |
To rebuild after changing src/page.html: python tools/build.py