Skip to content

Repository files navigation

Contributing to FadingUtilities

Thanks for helping improve the Fading Echo community resources! This project is a static website (HTML / CSS / vanilla JS, no build step, no framework) hosted on GitHub Pages. Anyone can contribute a new glitch, a fix, or an improvement.

New glitch or route to share but not comfortable with Git? Just drop it in the Discord and a maintainer will add it.


Table of contents


Running the site locally

The glitches are loaded from glitches.json with fetch(), which does not work over the file:// protocol. You must serve the folder over HTTP:

  • VS Code – install the Live Server extension, right-click index.html"Open with Live Server".
  • Python – from the repo root:
    python -m http.server 8000
    then open http://localhost:8000.
  • Nodenpx serve (or any static server).

If you open the page and see "Failed to load glitches", you're on file:// — use one of the servers above.


Project structure

index.html        Home page (game intro, links, community)
speedrun.html     Speedrun page: glitches (dynamic) + external tools (static)
mods.html         Mods page (Teleport Mod, Volume Mod)
voidcancel.html   Detailed Void Cancel guide
404.html          Not-found page

glitches.json     ← Source of truth for all glitches (edit this to add content)
search-data.js    Global Ctrl+K search index (kept in sync with glitches.json by hand)

site.js           Shared: hamburger menu, water particles, smooth scroll
search.js         Search modal logic (shared by all pages)
speedrun.js       Renders glitches.json into cards + section navigation

style.css         All styles
manifest.json     PWA manifest
sitemap.xml       SEO sitemap  (add new pages here)
robots.txt
Images/           Banner, name, favicon

Adding or editing a glitch

All glitch content lives in glitches.json. You never touch HTML to add a glitch — speedrun.js renders it automatically.

The file is an array of sections, each containing an array of glitches:

{
  "sections": [
    {
      "id": "speedrun_moves",
      "title": "Speedrun Moves",
      "icon": "fa-running",
      "color": "var(--primary-cyan)",
      "glitches": [ ... ]
    }
  ]
}

Glitch fields

Only title is required. The order of the keys matters — fields are rendered in the order they appear in the JSON, so put how_to, note, variations, videos in the order you want them shown.

Field Type Description
title string (req.) Glitch name. Plain text (auto-escaped).
alt_names string Alternative names, shown after a `
how_to string (HTML) "How to do" paragraph.
note string (HTML) Note box. Becomes a warning box if note_type is "warning" or the text contains ⚠️.
note_type string "warning" to force the red warning style.
variations array List of { "text": "…", "video_id": "…" } (video optional).
videos array YouTube video IDs (not full URLs), e.g. ["HwfF5NkcpIU"].
videos_extra array Additional videos, shown after the note.
discord_link string (URL) Adds a Discord icon linking to the source message.
button_text + button_link string Adds a call-to-action button (e.g. link to a full guide).
extra_content string (HTML) Raw HTML appended at the end of the card.
hover_video boolean false = always show the video instead of only on hover. Default true.
title_prefix string (HTML) HTML placed before the title (e.g. an icon).
card_style / title_style string Inline CSS overrides (use sparingly).

Minimal example

{
  "title": "My New Glitch (MNG)",
  "how_to": "Describe the input sequence here.",
  "note": "Only works at 120fps.",
  "videos": ["dQw4w9WgXcQ"],
  "discord_link": "https://discord.com/channels/…"
}

⚠️ HTML fields are injected as-is (how_to, note, variations[].text, extra_content, title_prefix). Only add HTML you trust, and always use target="_blank" rel="noopener noreferrer" on external links.

After editing, validate your JSON (a trailing comma or unescaped quote will break the whole page). Paste it into https://jsonlint.com if unsure.


Updating the search index

The Ctrl+K search reads search-data.js (pageSearchIndex), which is currently maintained by hand and separately from glitches.json. If you add a glitch that should be searchable, add a matching entry:

{
  title: "My New Glitch (MNG)",
  category: "Glitch",
  page: "speedrun.html",
  target: "glitches",
  desc: "Short description shown in results",
  icon: "fa-bug"
}

Coding conventions

  • No build step. Plain HTML/CSS/JS — keep it that way.
  • Strict CSP. Every page ships a Content-Security-Policy meta tag.
    • No inline event handlers (onclick="…" etc.) — attach listeners in JS.
    • External resources (fonts, Font Awesome) are the only allowed third parties, loaded with SRI (integrity=…). If you bump the Font Awesome version, update the integrity hash on every HTML page.
  • Accessibility. Keep aria-* labels, keyboard handlers on interactive elements, and respect prefers-reduced-motion.
  • External links always use target="_blank" rel="noopener noreferrer".
  • New page? Add it to sitemap.xml, the nav menu, and the search index if relevant.
  • Comments in the codebase are in French; match the existing style of the file you edit.

Branch & pull request workflow

  1. Fork the repo (or create a branch if you have write access).
  2. Base your work on the dev branch, not main.
    git switch dev
    git switch -c my-feature
  3. Make your changes and test locally over HTTP (see above).
  4. Commit with a clear, descriptive message.
  5. Open a pull request targeting dev. main is the deployed branch and is updated from dev once changes are reviewed.

Not sure about something? Ask on the Discord — contact cheapmanga_89714.

Happy glitch hunting! 🎮

About

Fading Echo speedrun utilities

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages