10
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill falkicon/mechanic --skill k-fencore- SKILL.md2.9 KB
Overview
This skill provides context and quick reference for FenCore, a pure-logic Lua library used by World of Warcraft addon developers. It highlights available utility domains like Math, Table, String, Color, Time, and Environment, and explains when to load FenCore in your project. Use it to find functions, inspect details, and understand recommended usage patterns for a testable, UI-free core layer.
How this skill works
The skill documents what each FenCore domain exposes and how to access functions either by domain (FenCore.Math) or directly (FenCore.Math.Clamp). It also outlines the built-in MCP tools for listing, searching, and getting function details using fencore.catalog(), fencore.search(), and fencore.info(). Finally, it clarifies that all functions are pure and suitable for unit testing outside the WoW UI.
When to use it
- When building the pure logic layer of an addon and you need reusable utilities.
- When you want testable, side-effect-free helpers for math, tables, strings, colors, or time.
- When detecting client environment (Retail vs Classic) or reading expansion/build info.
- When searching for common helpers to avoid reimplementing standard operations.
- When you need consistent shallow/deep table operations or safe value clamping.
Best practices
- Load FenCore in your core logic layer, not the UI layer, to preserve testability.
- Call FenCore functions directly; avoid creating redundant wrappers around them.
- Search existing domains with fencore.search before adding new utilities.
- Favor pure functions; keep stateful behavior in a separate Bridge or state layer.
- Use DeepCopy/Copy thoughtfully to avoid unexpected shared references.
Example use cases
- Clamp player stat values between min and max with FenCore.Math.Clamp before display logic.
- Merge saved-variables defaults with user overrides using FenCore.Table.Merge.
- Format and parse durations for tooltips with FenCore.Time.FormatDuration and ParseDuration.
- Detect client type with FenCore.Environment.IsRetail to gate API calls.
- Transform data structures using FenCore.Table.Map and Filter prior to rendering.
FAQ
Yes. FenCore is pure logic with no UI dependencies, so functions can be unit tested outside the WoW environment.
How do I find if a helper already exists in FenCore?
Use fencore.search(query) to search domains and fencore.catalog() to list available functions before adding new helpers.