# Love Joystick

> {{SKILLDESCRIPTION}} Use this skill when working with game controllers, joystick input, gamepad operations, or any input device-related operations in LÖVE games.

- Skill: `majiayu000/love-joystick` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/love-joystick`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/love-joystick/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/love-joystick

---


---
name: {{SKILL_NAME}}
description: {{SKILL_DESCRIPTION}} Use this skill when working with game controllers, joystick input, gamepad operations, or any input device-related operations in LÖVE games.
license: MIT
metadata:
  author: Ron Dekker <rondekker.nl>
---

## When to use this skill
{{SKILL_DESCRIPTION}} Use this skill when working with game controllers, joystick input, gamepad operations, or any input device-related operations in LÖVE games.

## Common use cases
- Handling joystick and gamepad input
- Managing multiple input devices
- Implementing controller-based game mechanics
- Handling joystick events and callbacks
- Supporting various game controller types

{{MODULES_LIST}}
{{FUNCTIONS_LIST}}
{{CALLBACKS_LIST}}
{{TYPES_LIST}}
{{ENUMS_LIST}}

## Examples

### Handling joystick input
```lua
function love.joystickpressed(joystick, button)
  if button == 1 then
    -- Handle primary action button
    player.jump()
  elseif button == 2 then
    -- Handle secondary action button
    player.attack()
  end
end
```

### Getting joystick axis values
```lua
function love.update(dt)
  local joysticks = love.joystick.getJoysticks()
  for i, joystick in ipairs(joysticks) do
    local leftX = joystick:getAxis(1)  -- Left stick X axis
    local leftY = joystick:getAxis(2)  -- Left stick Y axis

    -- Apply movement based on joystick input
    player.move(leftX, leftY)
  end
end
```

## Best practices
- Support both keyboard and joystick input for accessibility
- Handle joystick connection/disconnection gracefully
- Test with various controller types
- Consider controller dead zones and sensitivity
- Provide controller configuration options

## Platform compatibility
- **Desktop (Windows, macOS, Linux)**: Full joystick support
- **Mobile (iOS, Android)**: Limited to touch-based virtual controllers
- **Web**: Browser-based gamepad API support

