Skip to content
Lucent
Esc
↑↓navigate↵open
On this page

api.combat

Members

api.combat.attack()

api.combat.attack(target: MonsterQuery): Effect.Effect<boolean>
Name Type Required Default Description
target MonsterQuery

Returns: boolean

Errors: never

api.combat.cancelAutoAttack()

api.combat.cancelAutoAttack(): Effect.Effect<void>

Returns: void

Errors: never

api.combat.cancelTarget()

api.combat.cancelTarget(): Effect.Effect<void>

Returns: void

Errors: never

api.combat.canUseSkill()

api.combat.canUseSkill(skill: SkillSlot): Effect.Effect<boolean>
Name Type Required Default Description
skill SkillSlot

Returns: boolean

Errors: never

api.combat.exit()

api.combat.exit(): Effect.Effect<boolean>

Returns: boolean

Errors: never

api.combat.getSkillCooldownRemainingMs()

api.combat.getSkillCooldownRemainingMs(skill: SkillSlot): Effect.Effect<number | null>
Name Type Required Default Description
skill SkillSlot

Returns: number | null

Errors: never

api.combat.hunt()

Finds a matching monster and returns it after reaching its cell, or null if the target cannot be found or reached.

api.combat.hunt(query: MonsterQuery, options?: HuntOptions): Effect.Effect<LiveMonster | null>
Name Type Required Default Description
query MonsterQuery
options HuntOptions

Returns: LiveMonster | null

Errors: never

api.combat.kill()

api.combat.kill(query: MonsterQuery, options?: CombatKillOptions): Effect.Effect<boolean>
Name Type Required Default Description
query MonsterQuery
options CombatKillOptions

Returns: boolean

Errors: never

api.combat.killForItem()

Fights monsters in the current cell until your inventory has the requested quantity. Counts items you already own and accepts matching drops. Keeps trying until the goal is reached or the action is interrupted. A timeout stops farming; items already collected stay in your inventory.

api.combat.killForItem(target: MonsterQuery, goal: FarmItemGoal, options?: CombatKillOptions): Effect.Effect<boolean>
Name Type Required Default Description
target MonsterQuery
goal FarmItemGoal
options CombatKillOptions

Returns: boolean

Errors: never

Example

const script = require("lucent/script");
const { Effect, Option, pipe } = require("effect");

const result = yield* pipe(
  api.combat.killForItem("Boss Name", {
    item: "Item Name",
    quantity: 10,
  }),
  Effect.timeoutOption("5 minutes"),
);

if (Option.isNone(result)) {
  yield* script.log("Farming timed out before reaching the quantity.");
}

api.combat.killForTempItem()

api.combat.killForTempItem(target: MonsterQuery, goal: FarmItemGoal, options?: CombatKillOptions): Effect.Effect<boolean>
Name Type Required Default Description
target MonsterQuery
goal FarmItemGoal
options CombatKillOptions

Returns: boolean

Errors: never

api.combat.target.auras.get()

api.combat.target.auras.get(name: string, options?: AuraQueryOptions): Effect.Effect<LiveAura | null>
Name Type Required Default Description
name string
options AuraQueryOptions

Returns: LiveAura | null

Errors: never

api.combat.target.auras.getAll()

api.combat.target.auras.getAll(options?: AuraQueryOptions): Effect.Effect<readonly LiveAura[]>
Name Type Required Default Description
options AuraQueryOptions

Returns: readonly LiveAura[]

Errors: never

api.combat.target.auras.has()

api.combat.target.auras.has(name: string, options?: AuraQueryOptions): Effect.Effect<boolean>
Name Type Required Default Description
name string
options AuraQueryOptions

Returns: boolean

Errors: never

api.combat.target.get()

api.combat.target.get(): Effect.Effect<ScriptCombatTarget | null>

Returns: ScriptCombatTarget | null

Errors: never

api.combat.useSkill()

api.combat.useSkill(skill: SkillSlot, options?: SkillUseOptions): Effect.Effect<boolean>
Name Type Required Default Description
skill SkillSlot
options SkillUseOptions

Returns: boolean

Errors: never

Type preview
Open page

Last updated on September 26, 2026

Was this page helpful?