Skip to main content

useAchievementEngine

useAchievementEngine(): AchievementEngine

Defined in: src/hooks/useAchievementEngine.ts:39

Hook to access the injected AchievementEngine instance (NEW event-based pattern)

IMPORTANT: This hook only works when Provider has an externally created engine injected via the engine prop. Do NOT use this hook with the old achievements prop pattern - use useAchievements() instead.

Returns

AchievementEngine

AchievementEngine instance

Example

// Create engine outside React
import { AchievementEngine } from 'achievements-engine';

const myEngine = new AchievementEngine({
achievements: config,
eventMapping: { 'userScored': 'score', 'levelUp': 'level' },
storage: 'local'
});

// Inject into Provider
<AchievementProvider engine={myEngine}>
<App />
</AchievementProvider>

function App() {
const engine = useAchievementEngine();
engine.emit('userScored', 100);
engine.emit('levelUp', 5);
}

Throws

Error if used with old achievements prop pattern

Throws

Error if used outside AchievementProvider

Since

3.8.0