Terror Town — graphics credits World textures and photographic sky: Poly Haven, CC0. See texture-sources.json for individual asset and download URLs. https://polyhaven.com/license Three.js, GLTFLoader, SkeletonUtils and BufferGeometryUtils: MIT license. See ../THREE-LICENSE.txt. Original Three.js implementation of the map and gameplay. Inspired by Trouble in Terrorist Town by Bad King Urgrain. https://github.com/Metapyziks/terrortown This is an independent browser recreation. It does not run the Source engine. Minecraft BSP map update ttt_minecraft_b5 by Finniespin (credited in the embedded credit2 texture). The owner-supplied ttt_minecraft_b5.bsp is converted directly: compiled geometry, native texture coordinates, embedded Minecraft materials/sky, baked Source lightmaps, solid/player-clip brushes, player starts, loot positions, ladders and portal locations. Minecraft artwork: Mojang. Map conversion: tools/convert-source-map.py. The source file's SHA-256 and conversion counts are in maps/ttt_minecraft_b5/map.json. Native Source Hammer trap, traitor-tester and objective relay scripts are not executed; browser movement, navigation, usable doors and portals are implemented separately. Classic TTT interface update HUD measurements, colours, text hierarchy, weapon selector and scoreboard layout follow the original TTT gamemode by Bad King Urgrain, from Metapyziks/terrortown. Scoreboard logo and body-search icons decoded from that repository's VTF assets. https://github.com/Metapyziks/terrortown Browser fonts use Trebuchet MS and Tahoma where available. Source weapons update Weapon and ammo models, hand textures, animations, and sounds: Valve, from Counter-Strike: Source and Half-Life 2. Converted from MDL/VVD/VTX/VTF to glTF/PNG; original WAV samples are used for firing, reload mechanisms, crowbar hits and pickups. Counter-Strike: Source content source: https://github.com/razenxc/css_content Half-Life 2 content source: https://github.com/bouletmarc/hl2_ep2_content Source-format parsing: SourceIO by REDxEYE and contributors. https://github.com/REDxEYE/SourceIO See weapon-sources.json for asset provenance. Grenades, muzzle flashes and ground physics update Flashbang/HE grenade models, pin-pull/throw animations, textured hands, muzzle and flame sprites, grenade bounces, flash detonations, explosions and fire audio: Valve. Source content and conversion provenance are listed above and in weapon-sources.json. The classic TTT incendiary uses the Source flashbang model, with an orange tint here. Weapon and grenade rigid-body collisions: cannon-es, MIT license. https://github.com/pmndrs/cannon-es See ../vendor/CANNON-LICENSE.txt. Round report update Report layout, wording, awards, event display and round-only score formulas: Trouble in Terrorist Town by Bad King Urgrain, Metapyziks/terrortown. https://github.com/Metapyziks/terrortown/blob/master/gamemode/cl_scoring.lua https://github.com/Metapyziks/terrortown/blob/master/gamemode/cl_awards.lua https://github.com/Metapyziks/terrortown/blob/master/gamemode/scoring_shd.lua Skull icon decoded from the same repository's icon_skull.vtf. Silk tab and event icons: Mark James / famfamfam, CC BY 2.5. http://www.famfamfam.com/lab/icons/silk/ https://github.com/legacy-icons/famfamfam-silk See report-icons/SILK-LICENSE.md. Preparation and Magneto-stick update Original TTT preparation defaults (60 seconds first round, 30 seconds thereafter), delayed role assignment, Magneto-stick controls, reach and traitor body pinning: https://github.com/Metapyziks/terrortown/blob/master/gamemode/init.lua https://github.com/Metapyziks/terrortown/blob/master/entities/weapons/weapon_zm_carry.lua https://github.com/Metapyziks/terrortown/blob/master/entities/entities/ttt_carry_handler.lua Magneto-stick uses Valve's Half-Life 2 stun baton view/world models, original glove and HEV sleeve textures, draw/swing animations, and stun stick/physcannon WAV sounds. Converted with the SourceIO workflow and HL2 content source credited above. Articulated body physics, carrying and pinning are implemented here with cannon-es. Original TTT player models and Garry's Mod animations Phoenix, Arctic, Guerilla and Leet meshes and diffuse textures: Valve Software, Counter-Strike: Source. These are the four stock model identities used by TTT. https://github.com/razenxc/css_content https://github.com/Metapyziks/terrortown/blob/master/gamemode/shared.lua Original Garry's Mod player animation SMD and QC sources: Maxime Lebled, Facepunch Studios LTD / Valve Software. https://github.com/robotboy655/gmod-animations The Source files were converted onto the Valve rigs, with original weapon hold poses, world-space animation weights, idle cycles, directional locomotion, jumping, swimming, attacks and reload gestures. Root travel is supplied by the game's movement and collision code. Articulated ragdolls use cannon-es. See player-sources.json and players/animation-sources.json for provenance. Multiplayer lobby and equipment update Original TTT equipment catalogue, 1-credit purchases, equipment slots, limited stock, starting credits, credit awards and transfers are based on: https://github.com/Metapyziks/terrortown/blob/master/gamemode/equip_items_shd.lua https://github.com/Metapyziks/terrortown/blob/master/gamemode/weaponry.lua https://github.com/Metapyziks/terrortown/blob/master/gamemode/player.lua https://github.com/Metapyziks/terrortown/blob/master/gamemode/player_ext.lua The USP, UMP45, knife and C4 meshes, textures, animations and WAV sounds are Valve Counter-Strike: Source assets converted using the SourceIO workflow above. The lobby uses the same player models and a render of the actual BSP map. Lobby design, levels/XP, browser multiplayer transport and server replication are specific to this adaptation. This does not connect to native GMod servers. Flare Gun, Poltergeist and Newton Launcher use the original Half-Life 2 revolver, AR2 and physics-gun models, hands, animations and firing sounds. Source: Valve Software; bouletmarc/hl2_ep2_content, converted with SourceIO. Main menu music: Town Under Siege.mp3, supplied by the user. Store character styles reuse the original player rigs; hats and masks are game-native Three.js cosmetic geometry. 67th Way map voting update The owner-supplied ttt_67thway_v3.bsp is converted directly, including its compiled world geometry, displacement terrain, lightmaps, prop placements and gameplay entities. Map filename, source SHA-256 and conversion counts: maps/ttt_67thway_v3/map.json. Source textures and models: Valve Software, from Counter-Strike: Source and Half-Life 2. Asset mirrors: https://github.com/razenxc/css_content https://github.com/bouletmarc/css_content https://github.com/bouletmarc/hl2_ep2_content Conversion uses SourceIO, numpy, scipy and Pillow. Source asset provenance is in maps/ttt_67thway_v3/source-provenance.json. Map authors retain their original work. Accelerated map hit testing: three-mesh-bvh 0.9.2, Garrett Johnson and contributors, MIT. https://github.com/gkjohnson/three-mesh-bvh See ../vendor/THREE-MESH-BVH-LICENSE.txt. Persistent game server: ws 8.21.3, MIT; https://github.com/websockets/ws Additional maps and Hammer entity update User-supplied ttt_krustykrab_v3(1).bsp and ttt_christmastown.bsp are converted directly, preserving their original compiled geometry, lighting, prop placements, materials, audio and Hammer I/O. The map authors retain their original work. Map filenames, source hashes and conversion details are in each maps/*/map.json; external asset provenance is in adjacent source-provenance.json and audio/provenance.json. Original Source content: Valve Software, Counter-Strike: Source and Half-Life 2, from the asset mirrors credited above. Embedded map-specific assets and music come from the supplied BSP archives. Conversion uses SourceIO, numpy, scipy and Pillow. TTT traitor button, role check and traitor tester semantics: https://github.com/Metapyziks/terrortown/tree/master/entities/entities Source door, trigger, sound and Hammer I/O semantics: https://github.com/ValveSoftware/source-sdk-2013 Browser voice: WebRTC RTCPeerConnection, MediaDevices and Web Audio APIs. https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender/replaceTrack Default STUN service: https://developers.cloudflare.com/realtime/turn/ Optional coturn REST authentication: https://github.com/coturn/coturn Stock blood and flesh impacts: Valve Software (Half-Life 2 / Source). Original textures and WAV files from the existing HL2 content mirror; pinned asset paths are recorded in effects/blood-sources.json. https://github.com/bouletmarc/hl2_ep2_content Behavior references (independent browser implementation): https://github.com/Metapyziks/terrortown/blob/master/entities/weapons/weapon_zm_improvised.lua https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/client/fx_blood.cpp https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/shared/baseentity_shared.cpp