All MicroEvals
# Mold: Reborn — Handoff Document ## What this project is ...
Create MicroEval

# Mold: Reborn — Handoff Document ## What this project is ...

Prompt

# Mold: Reborn — Handoff Document ## What this project is A Roblox game called **Grow A Mold**. Solo project. The player is a noob scientist who injects a zombie with a serum; the zombie mutates into a fungal organism that spreads across the map. Long-term goal: a deadly, beautiful, alive thing that the player watches grow and eventually has to survive or contain. The final direction is **Proto Mold** — the earliest stage of the mold from NVZR, not the mature phase. We tried Apex (an original aggressive variant) and it didn't work out. Everything from Apex is discarded; the modules still reference it but nothing is final. ## Reference material **NVZR Mold sources confirmed:** - `https://realishreborn.miraheze.org/wiki/The_Mold` - `https://mutant-testing-reborn.fandom.com/wiki/The_Mold` **Key facts from the wiki:** - The Mold "has trouble digging into the surface, and thus it grows its branches **along nearby surfaces**." This is the single most important line. The mold crawls, it doesn't burrow. - The Mold reaches **Planetary Level** once the Super-Shroom sprouts. - Phase 1 is a **grace period**: host lies down, gets up, clutches chest, runs to a destination, screams, head bursts. The Mold forms with "8 or 9 heads" and grows tendrils on the ground. **Cysts (in other terms heads) can only grow on the tendrils**. After a while they swell and pop, releasing one of the structures. - Phase 2 onward: health bar turns from "???" to the mold's team name. Growls. Grows fungal trees. - **Weaknesses:** Nuclei (kill them, the mold can't heal), Fire and Electricity. - **Upon death:** the mold slowly rots, dark green, structures fall apart. A Noob Mold turns brown instead. - **Proto Mold** is the smaller, weaker version, inspired by Proto Rot from Rainworld. It only spawns spikes and converts terrain into "Contaminated Lands." **Full list of NVZR mold structures (from wiki):** Spike Traps (small / larger / grouped), Nucleus, Mutant Pods, Brain Mass, Termite Mound, Lantern, Mouth, Ribcage, Fungal Tree, Giant Tendril (impaling and grabbing variants), Super-Shroom (exclusive). **Creatures:** Rot family (Rot / Rotling / Mother Rot), Fake Enemies (disguised as enemies, grab on touch, reveal green-yellow moldy corpse with The Mold's face). **Sound IDs used:** - Ambient: `rbxassetid://6438134887` - Growth: `4752240634`, `7432030851`, `5930834201` - Heartbeat: `9043365993` - Growl: `89762752991297` - Growl slow: `9113980680` (0.5 speed) - Mutation: `7245146336` (0.3 speed) - Crack: `2945862496` - Scream: `84864462000645` (0.55 speed) - Scream 2: `89357265608603` (0.5 speed) **Face IDs:** - Main head: `110946917362758` - Random: `2293755580`, `18591072444`, `16307038505`, `9865218498`, `91437374074862`, `1027618973` ## What was built ### Config **`ReplicatedStorage/MoldConfig`** — everything tunable. Colors, sounds, surface ray parameters, growth rates, apex-specific tunables, being tunables, eye, pulse, lifecycle, screenshake, performance. Currently Apex-flavored but usable as a base for Proto. ### Core infrastructure (all solid, keep these) **`MoldSpatial`** — spatial hash for `IsNear(pos, radius)` and `CountNear`. Works. Cell size 10, iterates 3×3×3 neighborhood. Could be dynamic but functional. **`MoldSound`** — remote `MoldSound` fires `(id, vol, speed, pos)`. Client plays locally. Throttled per position. **`MoldPulse`** — server fires `MoldPulse` remote on interval or on demand. Also fires `MoldWatchState` when a player looks at the mold within range. Also fires `MoldRedPulse` (disabled by default). **`MoldSurface`** — raycast traversal. `Step(state, filter)` returns next `{pos, dir, normal, mode}`. `InitialState(pos, dir, filter)` finds ground. Handles floor / wall / ceiling. Fan-of-rays approach with scoring (prefer forward, avoid slope, avoid drop). **`MoldBuilder`** — creates parts with attributes `MoldBaseSize`, `MoldPulseEnabled`, `MoldBaseColor`. Provides `MakeVeinSegment`, `MakeHead`, `MakeBall`, `MakeTendrilTip`, `MakeGlow`, `MakeNucleus`, `MakeBrainCoral`, `MakeTooth`. Sound delegation through `MoldSound`. ### Growth (functional but heavy) **`MoldVein`** — the chain crawler. Takes a start state, loops: turn → step → check overlap → spawn structures → check for forks → advance. Has `computeEffectiveClearance` for narrow-passage shrinking. Underdeveloped gate via `Config.Growth.UnderdevelopedLinks`. **`MoldTentacle`** — creates a Folder with Seg_1..Seg_N + Tip. Attributes: `MoldTentacle`, `MoldTentacleRoot`, `MoldTentacleBaseDir`, `MoldTentacleSegLen`, `MoldTentacleSwayAmp`, `MoldTentacleSwaySpeed`, `MoldTentacleProfile` (tentacle/tongue), `MoldTentacleDroop`, `MoldTentacleBaseHidden`. Uses up-hint on `CFrame.lookAt` to avoid gimbal lock on vertical. **`MoldTentacleSway`** (client) — reads each tentacle's root each frame, applies per-segment progressive bend. Delta-time yaw drift on tip. Profile-based behavior (tongue droops, tentacle whips). **`MoldTentacleTick`** (server) — same as sway but only runs when there are zero players (solo Studio). Ticks at 20 Hz. ### Structures (sprawling, some good, some broken) **`MoldFactory`** — the big one. Called by `MoldVein` to build structures. Currently has builders for: SpikeBed, HeadCluster, Lantern, Nucleus, MutantPod, HungryCyst, BrainMass, ScreamerMound, TermiteMound, FungalTree, GiantTendril, Colossus, Broodmother, MainHead, SkyBranch. This is where most of the visual problems live — random spike scatter, floating parts, nonsensical mouths. **`MoldMaw`** — rebuilt mouths and burrows on an arc + ring pattern. `BuildMouth`, `BuildBurrow`, `AttachTongue`, `BuildMouthWithTongue`, `BuildBurrowWithTongue`. Places flesh blobs and teeth on mathematical patterns (arcs, rings) instead of random scatter. This is the good version. **`MoldJaw`** — thin adapter, delegates to `MoldMaw`. **`MoldWound`** — wounds on surfaces. Concentric rings (outer pale shell, mid gore dark, inner interior green), fangs on rim, curling flesh tendrils. Delegates burrows to `MoldMaw`. **`MoldBacteria`** — sky bacterial spheres. Grows from a start radius to target, accumulates cylinder spikes over time, auto-links nearby spheres with tendrils. **`MoldBeing`** (server) — clones the `Structures/MoldBeing` rig, destroys Motor6Ds/Welds, anchors all parts, destroys BodyColors. **Known bug: `SKINWALKER_COLORS` uses `LeftArm` but R6 parts are named `Left Arm` with a space.** This is why colors don't apply to limbs. **`MoldBeingApex`** (client) — state machine: disguise → revealing → revealed → dismissing. Client-side per-part twitch, breathing, spasm on random limb. Reveal lerps colors from skinwalker to true form. Destroy time 5 seconds of direct look. ### Orchestration **`MoldRegistry`** — creates main head, spawns roots, runs root respawner, sky branch spawner (every 30s up to 6 branches), lifecycle (mature at 30min, decay at 40min, death at 60min). Handles `Begin`, `End`, `HardReset`, `Stats`. **`MoldBootstrap`** — creates 7 remotes (`MoldPlayerHit`, `MoldPulse`, `MoldSound`, `MoldWatchState`, `MoldScreenshake`, `MoldRedPulse`, `MoldBeingDismiss`). Boots on `task.defer`. Contact loop fires `MoldPlayerHit` per client when they stand on mold. ### Client scripts **`MoldEffects`** — pulse (resizes every part with `MoldPulseEnabled` and `MoldBaseSize` in a wave from origin), hit tint, red pulse, screenshake, ambient loop, proximity heartbeat. Good. **`MoldEyes`** — tracks every part with `MoldIsEye` attribute. Looks at nearest player within range. Blinks. Idles when no player near. Good. **`MoldSway`** — whole-model sway for pillars and trees. Multi-layer noise (wind + three idle sines), per-part bend accumulation by height fraction, lean toward nearest player, distress tremor when player is close, breathing. **This is the best version and worth keeping.** ## What failed and why **Apex as a concept.** It tried to be too much — jaws, maws, tongues, wounds, bacteria, beings all at once. Every structure fought every other structure for visual space. The screenshot with the red-tipped bacterial cylinders exploding out of a pale tower is what Apex looks like: chaos. **Random scatter for organic shapes.** The core mistake across multiple rewrites. Placing spikes at random angles and random offsets produces noise, not organic form. Real bodies have bones, muscle attachments, patterns. The fix that worked is mathematical patterns (arcs, rings, spirals) with small jitter — used in `MoldMaw` and the better `MoldWound` version. **Over-large spike radii.** Early Apex spikes were `headSize * 0.55` which for a 20-stud head makes 11-stud-wide cones. That's a boulder, not a spike. Ratio should be 0.05–0.15 of head size for normal spikes and 0.2–0.35 for deliberate giant spikes. **Mouths on the main head.** Jaws placed on a large head cluster look wrong because the arc geometry doesn't fit the surface. Main head should have no mouth; mouths belong on flat ground structures (`HungryCyst`) or on stems with an obvious face. **Shrine → MegaShrine → 6 fused heads.** Three iterations. The 6 fused heads version was closest but the spikes were too big and no rotation on the heads. With random Y and full rotation it can look right, but it's hard to tune. **`MoldSpatial` cell size fixed at 10.** For structures with 0.5-stud spikes it's overkill; for a 200-stud cathedral it's too small. Ideally the cell size is derived from a rolling average of the last N inserted part sizes. **Skinwalker colors.** Server-side table mismatch on R6 part names. Not fixed in the modules as of the last write. ## Lessons learned 1. **Pattern beats random.** Every organic-looking feature in this project came from a mathematical pattern. Every ugly one came from `math.random()` used directly on positions or angles. 2. **Overlap hides seams.** Parts that visually fuse must physically overlap by at least 30% of their combined radii. Extend tubes by `thickness * 1.5` past the endpoint. 3. **Sink depth matters.** Placing a structure's base exactly at the surface looks like it's stuck on. Sinking it by 20–25% of radius looks like it grew out. 4. **Delta-time lerp.** Fixed per-frame lerps break at different framerates. Always multiply by `dt` or use `os.clock()` for time. 5. **Attachment-driven chains.** `CFrame.lookAt` on near-vertical directions has gimbal lock. Pass an `upHint` of `(1, 0, 0)` when the direction is nearly vertical. 6. **Attribute names on R6 must match spaces.** `Left Arm`, `Right Arm`, `Left Leg`, `Right Leg` — not camelCase. 7. **Clients do animation, servers do state.** Bulky per-frame visual work belongs on clients. Server holds the graph and lifecycle. ## Current file structure ``` ReplicatedStorage/ MoldConfig Head Structures/ branch Cone Eye Brain Ribcage MoldBeing (and unused models: MainHead, HeadCluster, EyeStalk, Watcher, MutantPod, etc.) ServerScriptService/ MoldSpatial MoldSound MoldPulse MoldSurface MoldBuilder MoldVein MoldTentacle MoldTentacleTick MoldMaw MoldJaw MoldWound MoldBacteria MoldBeing MoldFactory MoldRegistry MoldBootstrap (possibly MoldHeart, MoldStructures — check if still referenced) StarterPlayerScripts/ MoldEffects MoldEyes MoldSway MoldTentacleSway MoldJawSway MoldBeingApex ``` ## Next: Proto Mold Proto Mold is the simpler pre-Apex version. Wiki description: > "Proto Mold is the smaller, weaker version, inspired by Proto Rot from Rainworld. Only spawns spikes, converts terrain into Contaminated Lands." And the main wiki: > "The Mold has trouble digging into the surface, and thus it grows its branches **along nearby surfaces**. It then creates festering fleshy pods which it mutates into dangerous trap-like growths." Proto Mold design for our game: **Visuals:** - Thin tubes crawling along ground and up walls, hugging surfaces - Heavy use of small spikes (0.3–1.5 studs tall, radius 0.04–0.08 of head size — tiny!) - No heads with faces yet (heads are a mature-phase feature) - Color: sickly pale green, darker at the base, no red - Wounds: small, simple — a dark pit with a few spikes around the rim - No mouths, no tongues, no bacteria, no beings - The "Contaminated Lands" effect: darker patch on terrain underneath the mold **Behavior:** - A single seed spawns one Proto Mold node - It grows radially outward, thin tendrils, branching - It only creates spike clusters (small spikes emerging from the tube path) - It doesn't spawn jaws, brains, or other structures - It stops when it reaches a radius limit (say, 40–80 studs) - If the seed is destroyed, the whole thing dies **Structure modules needed:** - `ProtoSeed` — the initial node (small bulbous root) - `ProtoSpikeCluster` — 3–8 tiny spikes on the ground - `ProtoContam` — darkened patch under the mold (decal or thin disc) - Everything else stays the same (`MoldSurface`, `MoldBuilder`, `MoldVein` with reduced structure weights) **Simplifications to make:** - `MoldFactory` becomes much smaller: only `buildSpikeCluster` and `buildSeed` - Drop `MoldMaw`, `MoldJaw`, `MoldWound` from the Proto pipeline (keep the modules if you ever want them again) - Drop `MoldBacteria`, `MoldBeing`, `MoldBeingApex` - Drop `MoldTentacle`, `MoldTentacleSway`, `MoldTentacleTick` unless a tongue or grabber is later wanted - `MoldRegistry` becomes simple: spawn one seed, wait, done - Lifecycle: kill if seed destroyed; no mature/decay cycle yet **What stays:** - `MoldConfig` (rewritten for Proto colors and sizes) - `MoldSpatial`, `MoldSound`, `MoldPulse`, `MoldSurface`, `MoldBuilder` - `MoldVein` (with `StructureWeights` only containing `SpikeCluster`) - `MoldRegistry` (simplified) - `MoldBootstrap` - `MoldEffects`, `MoldEyes` (client) — both work fine and add life

Response not available

Drag to resize