ShadowOfTheColossus-PC
Native Windows port of Shadow of the Colossus (PS4, CUSA08809) - bring your own game dump. Port nativo para PC.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Trade calculator for Murder Mystery 2 values, scraped from Supreme Values.
| Artifact | Purpose |
|---|---|
scrape_mm2_values.py | Scrapes values into mm2_values.json |
build_trade_calculator.py | Rebuilds trade_calculator.html from that JSON |
trade_calculator.html | Standalone calculator (open in any browser) |
roblox_oauth.js / oauth_callback.html | Browser Sign in with Roblox (App permissions) |
roblox_account.js | Account button / modal on the calculator |
auth_server.py | Optional local username-link helper |
calculator_overlay.py | Optional always-on-top Windows overlay |
Repo: https://github.com/lunixical-hash/trade-calculator
Live site: https://lunixical-hash.github.io/trade-calculator/
Values are sourced from Supreme Values.
trade_calculator.html, or open it from your browser (File → Open).https://lunixical-hash.github.io/trade-calculator/
That serves index.html, which redirects to the calculator. Direct link:
https://lunixical-hash.github.io/trade-calculator/trade_calculator.html
python -m pip install -r requirements.txt
python calculator_overlay.py
# or double-click: Start Calculator Overlay.bat
cd path\to\trade-calculator
python -m pip install -r requirements.txt
python -m playwright install chromium
python scrape_mm2_values.py
Writes mm2_values.json here, and (on Windows) copies to
%LOCALAPPDATA%\Volt\workspace\mm2_values.json when that folder exists.
After a scrape (or after changing catalog fixes):
python build_trade_calculator.py
Opens as trade_calculator.html (and is what Pages serves).
MM2 Values Scraperpythonscrape_mm2_values.pyVisitors sign in with the normal Roblox Approve / App permissions flow — no commands, no profile codes.
The live site uses browser OAuth (PKCE). After a one-time owner setup, anyone can click Sign in with Roblox.
https://lunixical-hash.github.io/trade-calculator/oauth_callback.html
auth_public.json:{
"clientId": "YOUR_CLIENT_ID_HERE",
"redirectUri": "https://lunixical-hash.github.io/trade-calculator/oauth_callback.html",
"scopes": "openid profile"
}
main (GitHub Pages updates automatically)No client secret is needed in the browser. Approved apps show under Roblox Settings → App permissions, same as Bloxlink / Rolimons.
auth_server.pyFor local testing without OAuth, you can still run python auth_server.py and use username link. End users on the live site do not need this.
GitHub Pages already publishes whatever is on main.
Additionally, .github/workflows/archive-and-publish-site.yml runs whenever live site files change on main and:
versions/<timestamp>/Rollback: Actions → Archive and publish site → Run workflow → set restore_version to a folder name from /versions/.
If a site name doesn't match the in-game inventory name, edit name_map.json:
{
"Traveler's Gun": "TravelersGun"
}
Left = website name, right = exact MM2 inventory name.
git init
git add .
git commit -m "Add the MM2 trade calculator"
gh repo create trade-calculator --public --source=. --remote=origin --push
Without gh, create an empty repo on github.com, then:
git remote add origin https://github.com/lunixical-hash/trade-calculator.git
git branch -M main
git push -u origin main
UI: Repo → Settings → Pages → Source: Deploy from a branch → Branch: main → Folder: / (root) → Save.
CLI:
gh api repos/lunixical-hash/trade-calculator/pages -X POST -f build_type=legacy -f source[branch]=main -f source[path]=/
Live URL: https://lunixical-hash.github.io/trade-calculator/
local HttpService = game:GetService("HttpService")
local function loadValues()
if not isfile or not isfile("mm2_values.json") then
return nil
end
local ok, data = pcall(function()
return HttpService:JSONDecode(readfile("mm2_values.json"))
end)
if ok then
return data
end
return nil
end
local values = loadValues()
if values then
print("VampireGun value:", values.items.VampireGun)
end
requirements.txt (playwright, pywebview)