- Requirements
- Test in 57.4.1
# Snake Game
## Overview
Snake Game is an interactive mini-game for game servers (compatible with RunUO/ServUO). Players control a snake to eat food, grow longer, and score points while avoiding walls and their own tail.
## Installation
1. Place `SnakeGame.cs` in your server's `Scripts/Items` folder
2. Compile the scripts
3. Add the item to the game world using `[add SnakeGameItem` command
## How to Play
### Starting the Game
1. Double-click the Snake Game item in your inventory to open the game interface
2. Click the "Start Game" button to begin
### Controls
**In-Game Buttons:**
- Use arrow buttons on the control panel to change direction
**Command Controls (Recommended):**
- `[STSS` - Move Up
- `[XTSS` - Move Down
- `[ZTSS` - Move Left
- `[YTSS` - Move Right
**Tips:** Create macro bindings for these commands and assign them to number keys for faster gameplay.
### Game Rules
- Control the snake using directional inputs
- Eat red food items to grow longer and increase your score
- The game ends if you hit a wall or your own body
- Speed increases as your score grows (every 50 points)
- Higher scores = faster gameplay
## Scoring System
| Score | Reward |
|-------|--------|
| 450+ | 10,000 Gold Bank Check |
| 900+ | 50,000 Gold Bank Check |
| 1,800+ | 100,000 Gold Bank Check |
| 3,600+ | 200,000 Gold Bank Check |
Scores below 450 receive no reward.
## Leaderboard
The game maintains a persistent leaderboard that saves to `Data/MiniGame/SnakeGameScores.xml`. The top 20 scores are displayed in the game interface, showing:
- Rank
- Score
- Player name
## Features
- **Persistent Score Storage**: Scores are saved to XML and persist across server restarts
- **Real-time Leaderboard**: View top 10 players in the game interface
- **Speed Progression**: Game becomes faster as you score higher
- **Visual Interface**: Gump-based UI with snake animation and food display
## Troubleshooting
**"You already have a Snake Game window open"**
- Close the existing gump first, then double-click the item again
**Game not responding to commands**
- Make sure you have the game window open
- Use the recommended command controls with `[` prefix
## Technical Details
- **Grid Size**: 20x20 cells
- **Initial Speed**: 200ms per tick
- **Minimum Speed**: 50ms per tick
- **Speed Increase**: -10ms every 50 points scored
## File Locations
- Game Data: `Data/MiniGame/SnakeGameScores.xml`
- Source Code: Scripts/Items/SnakeGame.cs