Speed ASMR Keyboard EscapeDocumentation ← Portfolio

#Adding a Boss

A boss is one entry in Config.Boss.Models — no script changes needed. Worked example, based on how the final-stage boss was actually added to this project:

  1. Get a rigged Model with a Humanoid (or at least one BasePart to act as PrimaryPart) and put it in Workspace["New Map"]["BOSS - Models"], positioned somewhere between the two Gates you want as its arena.
  2. Pick two existing Gates to bound its patrol area — ArenaStartGate and ArenaEndGate. If you don't have a natural "end" gate for a new arena, duplicate an existing Gate<N>Safe part, move it into position, and give it a unique name (Gate<N>Safe for whichever stage it belongs to) — don't leave two Gates sharing a name, FindFirstChild will resolve to whichever one happens to come first and you won't know which.
  3. Add the Config entry:
    {
        TemplateName = "YourModelName",     -- must match the Model's Name exactly
        RuntimeName = "BossYourModelName",
        DisplayName = "Your Boss Name",
        ArenaStartGate = "GateN",
        ArenaEndGate = "GateNSafe",
        -- Optional: match this boss's speed to whatever that gate's own "Recommended level" sign says,
        -- instead of the shared default Speed. See Tuning Difficulty.
        MatchRecommendedLevel = true,
    },
    
  4. Press Play. BossService logs one line per boss on boot ([BossService] <name> ready: X a..b, floor Y c, scale Nx, animation ...) — if a boss doesn't show up, that line (or its absence, or a warn) tells you exactly why: model not found, gates not found, or no BasePart to anchor to.

Scale, catch radius, turn speed, chase speed, and reset delay are all optional per-entry overrides on top of the shared defaults at the top of Config.Boss — only specify what makes your new boss different from the others. See Bosses for how the three shipped bosses behave, and Tuning Difficulty for how MatchRecommendedLevel actually computes speed.