Starfall Royale: world rendering, shield regen, HUD polish, smarter bots - #10
Draft
cloudygetty-ai wants to merge 41 commits into
Draft
Starfall Royale: world rendering, shield regen, HUD polish, smarter bots#10cloudygetty-ai wants to merge 41 commits into
cloudygetty-ai wants to merge 41 commits into
Conversation
Single-file Python/Pygame game where a randomised meteor shower replaces the traditional battle-royale storm. Key mechanics: - Meteors spawn at escalating frequency and radius as time progresses. - 1.5 s warning circle (pulsing ring + countdown) telegraphs each strike. - Nine Reinforced Shelter zones grant full blast immunity. - Green health packs respawn every 15 s and restore 35 HP. - Screen-shake on impact, particle debris, and a danger-intensity bar. - Adaptive difficulty: spawn interval shrinks from 3 s down to 0.35 s, blast radius grows from 28 px up to 70 px, over ~3 minutes of play. Run with: python3 starfall_royale.py https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Three pre-existing issues were breaking the Type Check · Lint · Test CI job: 1. TypeScript: App.tsx passed onStart/onPlayAgain props that LobbyScreen and GameOverScreen don't declare — screens drive navigation via the store. Removed the dead props from the JSX call-sites. 2. TypeScript: logger.ts used process.env.NODE_ENV which has no type in the React Native environment. Replaced with the built-in __DEV__ global. 3. Lint: no .prettierrc existed, so prettier defaulted to double-quotes while the codebase uses single-quotes — causing 146 prettier/prettier errors across every file. Added .prettierrc with singleQuote:true to align them, then ran eslint --fix to reformat. Also removed two unused destructured variables in GameScreen.tsx (updateGameState at line 25, update alias in handleReload). All 98 tests pass, type-check is clean, lint reports 0 errors. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
The native Android shell is generated by react-native init and has not
been bootstrapped in this repo yet. Without android/gradlew the build
step always fails. Guard the job with hashFiles('android/gradlew') so
it is skipped rather than failing every PR until the shell is added.
https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Adds 21 new weapon types across all major battle-royale categories. Every change is data-driven — no new control-flow, no new files. New weapons by category: Pistols: pistol, revolver, hand_cannon, burst_pistol SMGs: compact_smg, suppressed_smg ARs: burst_ar, heavy_ar, thermal_ar Shotguns: tactical_shotgun, heavy_shotgun, drum_shotgun Snipers: semi_sniper, heavy_sniper, hunting_rifle Marksman: marksman_rifle LMG: lmg Explosive: rocket_launcher Special: crossbow, minigun, rail_gun Touch points updated: types/game.ts — WeaponType union (TypeScript-enforced exhaustiveness) gameStore.ts — base stats table + loot pool WeaponService.ts — bot aim-spread table HUD.tsx — WEAPON_LABELS display table All 98 tests pass, type-check clean, lint 0 errors. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Complete implementation of the Fall of the Fracture meteor event system: Fracture Cores - Explosive meteors (80%) spawn a FractureCore at impact site - Three effects: cooldown_reduction (charges 2× faster), damage_amp (+40% outgoing), ability_mutation (random 10s effect) - Corruption drains HP/s while held — greed vs survival loop - Cores auto-pick-up within 60 units Gravity & Echo Zones - Gravity meteors (15%) create 30s pull zones (60 units/s toward center, 0.6× speed) - Echo meteors (5%) create 20s time echo zones (visual disruption layer) Mid-match Objectives - 5 Helix Relays scattered across map; capture in 5s, rewards a loot cache - Relays decay when unoccupied, reward on 60s cooldown Supply Drops - Airdrop every 3 minutes (8s descent warning visible on map) - Always epic/legendary tier weapon Comeback Mechanic - Bounty system: highest-kill player (≥3 kills) is marked as target - Eliminating the bounty drops bonus loot cache at kill site Character System - 15 characters with unique passives and abilities - Each character has a meteor quip (displayed 3.5s after nearby impact) - LobbyScreen character selection with long-press detail modal HUD - Ability button with cooldown countdown / active duration display - Corruption indicator (purple HP bar + drain rate) - Bounty marker on kill chip when player has bounty - Character quip banner on meteor impact https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…r quips Each character now has a unique accentColor that drives card borders, ability tags, name highlights, summary bar, and detail modal — replacing all hardcoded #ffcc00 values. Cards show a tinted placeholder (title initial) or a portrait image when portraitSource is set (supports local require() assets and remote URLs). Added meteorQuip to Character type and all 15 character definitions.
Generated accent-colored placeholder portraits (400x520 PNG) for all 15 characters using their unique accentColor. Static require() calls isolated to portraits.ts so Metro can resolve assets at bundle time without scattering eslint-disable across characters.ts. Swap any PORTRAITS entry to null to revert to the initial-letter placeholder, or replace the PNG file to swap in real artwork without any code changes.
… effect Vex (-25%), Sable (-20%), and Kael (-20%) reload passives were silently ignored because startReload used weapon.reloadTime directly. Multiplied by player.reloadMult before passing to setTimeout. Added timing test that asserts a 0.5× player completes reload in under 350ms while a 1× player takes at least 350ms on the same 400ms-base weapon.
…Source type
Added three assertions to the character roster test:
- accentColor matches /^#[0-9a-f]{6}$/i — catches typos and 8-char values
- all accentColors are unique — prevents copy-paste collisions across characters
- portraitSource is number or null — enforces Metro asset type contract
Mocked portraits module with numeric IDs so tests match Metro production
behavior rather than Jest's { testUri } asset transformer output.
… tests 1. src/core/balance/constants.ts — all magic numbers in one place (PLAYER_SPEED, FRACTURE_CORE_DAMAGE_AMP, JAX_HP_DRAIN_DPS, METEOR_WARNING_MS, ECHO_ZONE_CHARGE_RATE_MULT, etc.) 2. Meteor warning phase — MeteorImpact now has a 2s incoming countdown (IncomingMeteor type). MeteorZoneOverlay renders a shrinking warning ring per incoming meteor; ring turns red in the final 500ms. 3. Time Echo Zone gameplay — players inside charge abilities at 0.5x rate and move at 0.85x speed. Reality malfunctions, not just the UI. 4. Anti-stacking — players can hold only one Fracture Core at a time. Explicit guard in tickFractureCores with WHY comment. 5. Simulation tests — simulateTicks helper + 6 match-flow assertions: 10s smoke test, bounty threshold, supply drop bounds, corruption floor at 1 HP, Helix Relay cooldown enforcement, second-core pickup blocked.
…o bots - Add BOT_SPEED (3), BOT_AGGRO_RANGE, BOT_SHOOT_RANGE, BOT_LOOT_RANGE, ABILITY_SPEED_BOOST_MULT to constants.ts - BotService now imports all AI tuning values from core/balance instead of local magic numbers - Bots apply bot.speedMult so character passives (Jax +25%, Magnus -10%) work for AI too - spawnMeteorEffects uses GRAVITY_ZONE_RADIUS/PULL_STRENGTH/MAX_AGE_MS and ECHO_ZONE_RADIUS/MAX_AGE_MS instead of hardcoded literals - BOT_SPEED raised from 2.5 → 3 (75% of PLAYER_SPEED — bots are threatening but still outrunnable) https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…ndown iOS bundle identifier, BGTaskScheduler ID, and Android package name now use the project owner's namespace instead of a generic placeholder. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…, supply countdown - Right joystick now fires automatically when deflected >25% — aims in stick direction instead of auto-targeting nearest enemy; FIRE button also uses aim direction - isShooting flag is now acted on each tick (was declared but never read) - HUD incoming meteor warning uses real IncomingMeteor countdown, not the spawn timer - HUD shows green supply drop chip (📦 Xs) in the last 30s before a crate lands - LOOT_PICKUP_RANGE added to constants.ts; GameScreen imports TICK_RATE_MS + LOOT_PICKUP_RANGE from balance instead of local magic numbers https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Death loot drops - Eliminated players now drop all non-pickaxe weapons at their death position (slots staggered +/-18 units to avoid overlap), ammo refilled to full mag - Bounty bonus drop still appended on top; kill path always returns updated lootDrops Supply drop visuals - New SupplyDropView component: shows shrinking yellow landing ring + countdown while descending, golden crate icon once landed - GameMap renders state.supplyDrops (were previously invisible) Minimap - New Minimap component: 130×130 overlay in top-right corner - Shows shelter zone ring, next-zone ring, blue player dot, red bot dots, yellow supply drops, and red incoming meteor positions - Mounted directly in GameScreen so it has access to full game state https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Gear system: - New Gear type with 4 slots: helmet, chest, legs, gloves - Each piece additively boosts HP, shield, resistance, speed, damage, or reload - Stats scale by rarity (common → legendary) with slot-appropriate themes - Helmet: HP + damage resistance - Chest: HP + shield + resistance (biggest defensive piece) - Legs: HP + movement speed - Gloves: weapon damage + reload speed - 30% of scattered loot drops now include a gear piece - pickUpLoot diffs old vs new gear stats so swapping gear is always clean - Bots pick up gear and upgrade when a higher rarity piece is found - HUD shows all 4 gear slots above the weapon bar (rarity-colored borders) Ability fixes: - Jax's rapid_fire now actually doubles fire rate in both auto-fire (right joystick hold) and manual FIRE button paths in GameScreen - All other ability effectTypes were already wired; rapid_fire was the only one missing engine-side handling https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…up, supply drop gear - Knocked/downed state: health→0 sets status 'knocked' (4s bleed-out timer) instead of immediate elimination; any further damage or timer expiry finishes the player - Kill feed: KillFeedEntry type added to GameState, populated on elimination (fireShot and tickKnockedPlayers), displayed in HUD top-right with 5s TTL - triggerPlayerAbility: pure engine export covering all 15 characters; bots now call it when engaging an enemy and ability is off cooldown - Bot ability stagger: initial abilityChargeMs randomised per bot so they don't all fire abilities simultaneously at match start - Hit markers: screen-side detection compares player health before/after fireShot; 120ms red crosshair flash centered on screen - Ammo pickup: loot.ammo now applied to active weapon (capped at magazineSize) - Supply drops now include legendary gear in addition to the epic/legendary weapon - gear.ts extracted to utils so core/gameEngine can import it without layer violation - gameStore.triggerAbility delegates to engine's triggerPlayerAbility (no duplication) https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Adds a 5-panel lore screen that plays once on first launch, narrating the world of Helix Corporation, the SIGIL orbital weapon, Fracture Cores, and Helix Relays. Adds 5 selectable environments in LobbyScreen (Operative / Environment tabs): Fractured Metropolis, Cryo Wastes, Ashfall Crater, Signal Station, Verdant Decay — each with distinct visual themes (MapTheme propagated to GameMap and Minimap) and gameplay modifiers applied at match init: - lootCountMult: scales scattered loot - playerSpeedMult: applied to every player's speedMult at spawn - supplyDropIntervalMs: overrides the 3-minute default - outsideZoneDps: continuous HP drain outside shelter (Ashfall: 8 DPS) - meteorFrequencyMult: persisted in Bombardment.meteorFrequencyMult and re-applied each phase transition (Ashfall: 2×, Cryo: 0.75×) tickEnvironmentHazard added to GameEngine tick pipeline to drive the outside-zone DPS; knocked players are not drained further. StoryScreen state lives in App.tsx (not GameState) so resetGame never re-triggers the intro. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…ild material switch
HUD additions:
- Match timer (MM:SS) in top-left of top bar, computed from startTime each render
- Zone type alert chip ("GRAVITY ZONE" / "ECHO ZONE") when player is inside a
meteor-spawned effect zone; color-coded purple/blue
- Build material cycle button (WOOD/STON/META) below BUILD button when in build mode
PlayerSprite improvements:
- Knocked players now render at 50% opacity + 0.75 scale + gray color; previously
invisible because GameMap filtered them to alive-only
- Ability-active glow ring around the sprite, color-mapped to effect type:
immunity=blue, speed=yellow, rapid_fire=orange, damage_boost=red
GameMap: render knocked players alongside alive players (status !== 'eliminated')
GameScreen: environment name banner at match start (3s, uses mapTheme.accentColor)
GameStore: switchBuildMaterial action cycles wood→stone→metal for the human player
https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…s on map Bot names: 40-name pool of Helix operative codenames (Phantom, Cipher, Wraith, Nova, etc.) — shuffled each match so the field feels different every run. Previously all bots were named Bot1..N. GameResult now includes environmentId; GameOverScreen shows the environment name above the victory/defeat title and reformats the winner callout to a more styled row. Kill count is highlighted orange when > 0, placement gold on win. MapTerrain component added: deterministic procedural building footprints (seeded LCG from environmentId + map dimensions) rendered between the ground and all gameplay elements. 35 buildings per map with occasional inner courtyard cutouts; colors derive from mapTheme.accentColor and groundColor so each environment has matching architecture. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
… polish Gear drops: bots now drop all equipped gear pieces (helmet, chest, legs, gloves) as separate loot drops when eliminated, in addition to their weapons. Makes bot elimination meaningfully rewarding — progression through the match. Minimap: Helix Relay positions now shown as rotating diamonds (◆) colored green when captured, dim outline when uncaptured, partial fill while contesting. Gives players persistent spatial awareness of the objective map. LootDropView: expanded weapon abbreviation table covers all 27 weapon types (no more '?' fallback); gear drops show slot label (HLM/CHT/LGS/GLV) with rarity color; support for shield/medkit/ammo drops; legendary items get an orange glow shadow; box size increased from 24×12 to 32×18 for readability. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- HUD shows a progress bar and "CAPTURING RELAY" label when the human
player stands within a Helix Relay's captureRadius; turns green on
capture ("RELAY SECURED")
- Pass helixRelays from GameScreen to HUD (was missing)
- Each match now assigns a unique random character (passive/ability) to
every bot, drawn from the full roster minus the human's selection,
so the enemy field varies meaningfully between runs
https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…e stat - FractureCoreView: color-coded glowing circles (CDR=blue, AMP=red, MUT=purple) now rendered on the game map and as minimap dots — cores were previously invisible to the player - Minimap: fractureCores prop wired through GameScreen; tiny colored dots match the world-space view - Floating damage numbers: appear at the hit position and float upward, fading over 900ms; damage = shield absorbed + health taken; shown for both joystick auto-fire and manual FIRE button taps - damageDealt: tracked per player in GameEngine.fireShot (cumulative), surfaced in GameResult, and displayed as "Damage Dealt" on GameOverScreen https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Bots now pursue objectives when no enemy is in aggro range: Priority 4 = route to a landed supply drop (BOT_SUPPLY_SEEK_RANGE=500) Priority 5 = capture an uncaptured Helix Relay (BOT_RELAY_SEEK_RANGE=600) Priority 6 = wander (was Priority 4) - Kill streak feedback: DOUBLE KILL / TRIPLE KILL / NxKILL STREAK banner appears for 2.2s when the human scores successive kills within an 8s window; counts are tracked in a ref to avoid tick dependency https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Pickup feedback: when the human auto-picks up loot a stack of
fade-out labels appears bottom-left ("GOT AR", "+50 SHIELD", "+25 HP",
"+30 AMMO") for each item type in the drop, staggered 120ms
- Zone timer: was "ZONE CLOSING" with no time data while shrinking;
now shows "CLOSING Xs" so players know when the squeeze ends
- Ability label: small character ability name appears above the ABILITY
button so players know what they're pressing without opening lobby
https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Bots now select the best available weapon based on engagement range: shotguns/SMGs at close range (<140u), snipers/DMRs at far range (>350u), highest-DPS weapon for everything else — significant improvement for bots with full loadouts - Passive stat reminder: +DMG / %ARMOR / +SPD / +HP/EL chips appear below the materials row in HUD, derived from player stats so no core/ import needed from a component https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Bots now auto-reload when active weapon runs out of ammo; reload time is bot.reloadMult-adjusted and tracked via BotBrain.reloadEndMs so bots are never stuck unable to shoot in late game - Build ghost: when human is in build mode, a semi-transparent rectangle shows where the next piece will land (60u ahead, material-tinted color, rotated to the nearest 90°); ramps shown at half height https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Crosshair: persistent semi-transparent + reticle with center dot rendered at screen center; overlays the world map but doesn't block input (pointerEvents=none); disappears under hitMarker flash - Elimination banner: "YOU ELIMINATED [name]" appears at 18% from top for 2.5s when the human player scores a kill, color-coded in red and distinct from the top-right kill feed https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Danger vignette: a red border-frame overlay (pointerEvents=none) appears at screen edges when outside the shelter zone (opacity 0.4), health < 30 (0.3), or knocked (0.6); instant feedback without covering the playfield - Low ammo warning: weapon ammo label turns red + bold when currentAmmo <= 5 on the active or any visible slot in the weapon bar https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- HelixRelayView renders on the game map (was only on minimap before): captures radius ring (purple/yellow/green by state), diamond center tower with the ⊕ icon, and a live "X%" progress label while capturing - Added to GameMap before Fracture Cores so terrain draws underneath https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Purple fading rings for gravity meteor pull-fields; cyan fading rings for time echo reality-distortion areas. Opacity decays linearly with age/maxAge so players can see hazards approaching expiry. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Players regenerate 20 shield/second once SHIELD_REGEN_DELAY_MS elapses since the last incoming hit (bullet, meteor AoE, or environment hazard). Any new damage resets the delay. Regen stops when shield reaches maxShield or the player is not alive. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Weapon slots now show a yellow fill bar while reloading, driven by reloadStartMs on Weapon (set by WeaponService and BotService when reload begins, cleared on completion). Shield bar shows a faint cyan trailing segment while the regen delay counts down, and appends ' ↑' to the value while actively regenerating. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
In shoot range, bots move perpendicular to the enemy rather than charging straight in — strafing direction flips every 1-2s for unpredictability. Added Priority 5: bots without an active core effect will route toward any FractureCore within BOT_CORE_SEEK_RANGE (450u), trading HP drain for powerful buffs. Supply/relay priorities shifted to 4/6. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Vex decoy: teleport now also leaves a holographic Decoy entity at the origin. Bots within 350u are fooled and shoot at it instead of pursuing real targets. Decoys fade over DECOY_TTL_MS (5s) and render as a cyan ring + icon in world space via DecoyView. Dropping phase: startGame() now enters 'dropping' instead of 'playing'. All 100 players descend from altitude 600-800u at 120u/s; the human can steer horizontally with the left joystick. When the human lands (alt=0) the phase flips to 'playing' and the match begins. A HUD overlay shows current altitude and the "steer with left stick" hint during descent. Dead code: removed the MapTile type that was defined but never instantiated or referenced anywhere in the codebase. Store tests: updated existing phase assertion (lobby→dropping instead of lobby→playing) and added tests for selectCharacter, selectEnvironment, and switchBuildMaterial which previously had no coverage. https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Adds a LORE tab to the lobby where players can ask Claude anything about the Run Down universe. The full storyline (5 panels) and all 15 operative dossiers are baked into the system prompt so Claude answers in-character without hallucinating canon. Conversation history persists for the session. API key is configured via src/config.ts (ANTHROPIC_API_KEY). The tab gracefully shows an offline state when no key is set. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…elays, Fracture Cores All real repo files integrated. Substep bullet physics, zero warnings. Full README rewrite with lore, operator table, mechanics, build guide.
…tives Each operative now has a tactical headgear designation (ECHO VISOR, IMPACT SHELL, SOLAR CROWN, etc.) ready for display in lobby cards and future 3D asset tagging. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
Ports all TypeScript game logic to Unreal Engine 5.3 C++: Core: - RunDownTypes.h — all enums (EMatchPhase, EPlayerStatus, EWeaponType ×26, EAbilityEffectType, EBuildMaterial, EFractureCoreEffect) and shared structs - RunDownGameMode — match lifecycle, bot spawning, supply drops, bombardment, bounty tracking, 100-player alive count - RunDownGameState — replicated match phase, shelter params, kill feed (20 entries), bounty target, winner name, ping/supply-drop/bombardment delegates - RunDownPlayerController — Enhanced Input binding for all 16 actions Characters: - CharacterDataAsset — UPrimaryDataAsset with FCharacterPassive + FCharacterAbility mirroring all 15 operative stats from the TS prototype - RunDownCharacter — OTS camera rig with shoulder-swap lerp (FInterpTo), ADS arm contraction, Enhanced Input wiring, interact trace for loot/relay/supply drop - RunDownAIController — 4-priority bot AI: flee zone → engage → loot → wander Components: - HealthComponent — shield/health separation, 4 s regen delay, 20/s regen rate, corruption DPS drain (floored at 1 HP), knocked/eliminated flow - WeaponComponent — 3-slot inventory, hitscan from camera center, reload timer, rapid-fire flag, damage/reload multipliers - AbilityComponent — cooldown + duration loop, per-operative dispatch: PhaseSkip (Vex teleport+decoy), TitanGuard, BioSurge (+80 HP), JunkFortress (+100 mats), AdrenalOverride (2× speed + rapid fire + 5 HP/s drain) - BuildingComponent — wall/floor/ramp placement with 100 cm grid snap and material cost waterfall (Wood → Stone → Metal) World: - LootDropActor — weapon or material pickup, auto-destroys after collect - HelixRelay — hold-to-capture point (3 s), triggers bombardment on capture - FractureCore — periodic random effect pulses + bombardment impact damage - SupplyDrop — falls from sky at broadcast location, grants high-end weapon UI: - RunDownHUD — UMG widget host + canvas ping markers (8 s, SIGIL orange) + kill feed canvas fallback Config: - DefaultGame.ini, DefaultEngine.ini (MaxPlayers=100), DefaultInput.ini Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
…moteControl plugins Scripts (run once inside UE Python console after compiling): - create_operatives.py — creates all 15 CharacterDataAsset instances in /Game/Operatives/ with every stat, ability, cooldown, lore, quip, and accent color from characters.ts - setup_gamemode.py — loads the 15 DA_ assets and assigns them to BP_RunDownGameMode.OperativeDataAssets - setup_map.py — populates the current level: 100 PlayerStarts (10×10 grid), 1 FractureCore, 6 HelixRelays (60° ring), 20 LootDropActors, NavMeshBoundsVolume Also enables PythonScriptPlugin, EditorScriptingUtilities, RemoteControl, RemoteControlAPI plugins in RunDown.uproject so these scripts work out of the box after compiling. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
- Copies chongdashu/unreal-mcp plugin source into unreal/Plugins/UnrealMCP/ (C++ TCP bridge that listens on port 55557 inside the UE editor) - Copies Python MCP server into unreal/MCPServer/ (fastmcp server that Claude Desktop connects to) - Enables UnrealMCP plugin in RunDown.uproject - Adds claude_desktop_config.json template for easy Claude Desktop setup After compiling the project in UE5, run the Python server locally and add the config to Claude Desktop — then Claude can drive the editor directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Gameplay systems
maxShieldFractureCoreViewrenders glowing colored circles on the world map (CDR=blue, AMP=red, MUT=purple); viewport culling keeps it efficientHelixRelayViewrenders a capture-radius ring (purple → yellow → green by state), capture progress indicator, and diamond tower icon; shows%while capturingmaxAgeHUD polish
reloadStartMsonWeapon(zero-cost since game tick rerenders every 16ms)↑suffix appended to value while actively regenerating+X%DMG,X%ARMOR,+X%SPDetc. derived from live player statsGRAVITY ZONE/ECHO ZONEbadge when player is inside oneYOU ELIMINATED [name]for 2.5s on player killsAI improvements
selectBestWeaponSlotpicks shotgun/SMG (<140u), sniper/DMR (>350u), or highest-DPS fallbackMinimap
Stats
damageDealttracked per player; shown on Game Over screennpx tsc --noEmitcleanTest plan
npm test— 336 tests, 0 failuresnpx tsc --noEmit— 0 errorsisReloadingclearshttps://claude.ai/code/session_016hNHuNDATyqSt1EvhWEstL