MCPcopy
hub / github.com/magcius/noclip.website

github.com/magcius/noclip.website @main sqlite

repository ↗ · DeepWiki ↗
29,874 symbols 90,159 edges 882 files 412 documented · 1%
README

noclip

The reverse engineering of model formats was done by many people. See the application for full credits.

Contributing

Contributions are very welcome! New games, new features, and bug fixes are all very appreciated. Even small contributions like proper map names, grouping maps and new default savestates are extremely helpful.

AI Contributions Policy

  • If AI was used in any capacity for your contribution (coding, reverse engineering, authoring commit messages or PR descriptions), this must be disclosed in your pull request.
  • Please only submit contributions that you have tested, reviewed, and feel you understand.
  • All comments or documentation must be fully human-authored. Any AI-written or even AI-assisted comments are not allowed.
  • Project maintainers reserve the right to reject contributions at any time, for any reason, including if they suspect this policy has not been correctly followed.

Development Guide

To develop for noclip.website, you'll need these requisites:

Then, use the following commands to set up your environment (only needed every so often): * Install dependencies from npm: pnpm install, * Set up the required rust binaries: shell rustup target add wasm32-unknown-unknown cd rust cargo install cargo-run-bin cargo bin --install

Finally, to build and run the project, use pnpm start. This will start a live-reloading environment and uses filesystem watchers to auto-build the project.

For any questions related to development, see the Official noclip.website Discord Server's #development channel. A number of developers from the community are present there and can help answer questions if you run into any additional issues getting set up.

Controls

Key Description
Z Show/hide all UI
T Open "Games" list
W/A/S/D or Arrow Keys Move camera
Hold Shift Make camera move faster
Hold \ Make camera move slower
E or Page Up or Space Move camera up
Q or Page Down or Ctrl+Space Move camera down
Scroll Wheel Adjust camera movement speed (in WASD camera mode; instead changes the zoom level in Orbit or Ortho camera modes)
I/J/K/L Tilt camera
O Rotate camera clockwise
U Rotate camera counterclockwise
1/2/3/4/5/6/7/8/9 Load savestate
Shift+1/2/3/4/5/6/7/8/9 Save savestate
Numpad 3 Export save states
. Freeze/unfreeze time
, Hold to slowly move through time
F9 Reload current scene
B Reset camera position back to origin
R Start/stop automatic orbiting (requries Orbit or Ortho camera modes)
Numpad 5 Immediately stop all orbiting (requries Orbit or Ortho camera modes)
Numpad 2/Numpad 4/Numpad 6/Numpad 8 Snap view to front/left/right/top view (requires Orbit camera mode)
F Not sure what this key does, let me know if you figure it out

Third-Party Credits

All icons you see are from The Noun Project, used under Creative Commons CC-BY: * Truncated Pyramid by Bohdan Burmich * Images by Creative Stall * Help by Gregor Cresnar * Open by Landan Lloyd * Nightshift by mikicon * Layer by Chameleon Design * Sand Clock by James * Line Chart by Shastry * Search by Alain W. * Save by Prime Icons * Overlap by Zach Bogart * VR by Fauzan Adaiima * Play Clapboard by Yoyon Pujiyono * Undo by Numero Uno * Redo by Numero Uno * Zoom In by Tanvir Islam * Zoom Out by Tanvir Islam

Extension points exported contracts — how you extend this code

Widget (Interface)
(no doc) [8 implementers]
src/ui.ts
Destroyable (Interface)
(no doc) [630 implementers]
src/SceneBase.ts
CameraController (Interface)
(no doc) [6 implementers]
src/Camera.ts
SceneGfx (Interface)
(no doc) [27 implementers]
src/viewer.ts
GenericRenderable (Interface)
(no doc) [9 implementers]
src/Glover/render.ts
Initializer (Interface)
(no doc) [65 implementers]
src/SourceEngine/ParticleSystem.ts
NiParse (Interface)
(no doc) [158 implementers]
src/Morrowind/NIFBase.ts
ColorElement (Interface)
(no doc) [141 implementers]
src/MetroidPrime/particles/color_element.ts

Core symbols most depended-on inside this repo

getUint32
called by 3014
src/PaperMario64/evt.ts
push
called by 2770
src/FinalFantasyX/script.ts
create
called by 2540
src/Common/Unity/GameObject.ts
assert
called by 2009
src/gfx/platform/GfxPlatformUtil.ts
getFloat32
called by 1908
src/Morrowind/ESM.ts
set
called by 1825
src/SourceEngine/Materials/MaterialParameters.ts
getUint16
called by 1574
src/RatchetAndClank/DataViewExt.ts
createDataView
called by 816
src/ArrayBufferSlice.ts

Shape

Method 14,685
Class 6,624
Function 5,694
Interface 1,775
Enum 1,096

Languages

TypeScript100%
Python1%

Modules by API surface

src/SuperMarioGalaxy/Actors/MiscActor.ts861 symbols
src/SuperMarioGalaxy/Actors/Enemy.ts780 symbols
src/SuperMarioGalaxy/Actors/MapObj.ts520 symbols
src/SourceEngine/EntitySystem.ts499 symbols
src/FinalFantasyX/particle.ts427 symbols
src/ZeldaWindWaker/d_a.ts423 symbols
src/MarioKart64/courses.ts394 symbols
src/SuperMarioGalaxy/ActorUtil.ts321 symbols
src/Common/JSYSTEM/JStudio.ts295 symbols
src/Morrowind/NIFParse.ts287 symbols
src/ui.ts286 symbols
src/MetroidPrime/particles/real_element.ts220 symbols

Dependencies from manifests, versioned

@rsbuild/core1.4.4 · 1×
@rsbuild/plugin-type-check1.2.3 · 1×
@types/node22.16.0 · 1×
@types/parseurl1.3.3 · 1×
@types/pngjs6.0.5 · 1×
@types/send0.17.5 · 1×
@types/webxr0.5.22 · 1×
@webgpu/types0.1.64 · 1×
@xmldom/xmldom0.9.8 · 1×
buffer6.0.3 · 1×
crc-321.2.2 · 1×
fzstd0.1.1 · 1×

For agents

$ claude mcp add noclip.website \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact