Overview
This prompt provides a Lua script for spawning pets in the Adopt Me game, enhancing user experience. Programmers and game developers will benefit from the code’s structure and functionality.
Prompt Overview
Purpose: This Lua script spawns pets in the Adopt Me game based on user input.
Audience: The script is designed for game developers and programmers familiar with Lua and game APIs.
Distinctive Feature: It uses Levenshtein distance to suggest similar pet names for user input errors.
Outcome: Users can successfully spawn pets or receive suggestions for correcting invalid names.
Quick Specs
- Media: Code
- Use case: Pet spawning in games
- Techniques: Levenshtein distance, input validation
- Models: Lua
- Estimated time: 1-2 hours
- Skill level: Intermediate
Variables to Fill
- [pet:lower()] – Pet:lower()
- [i] – I
- [0] – 0
- [j] – J
- [i-1] – I 1
- [j-1] – J 1
- [len1] – Len1
- [len2] – Len2
- [inputLower] – Inputlower
Example Variables Block
- [i]: 1
- [j]: 2
- [j-1]: 1
- [len1]: 3
- [len2]: 4
- [inputLower]: cat
The Prompt
“`lua
— Lua script for the Adopt Me game to spawn pets from a predefined list
— Define the list of valid pet names
local validPets = {
“Dog”, “Cat”, “Dragon”, “Turtle”, “Parrot”, “Frog”, “Rabbit”, “Lion”, “Elephant”, “Cheetah”
}
— Create a lookup table with lowercase keys for efficient validation
local petLookup = {}
for _, pet in ipairs(validPets) do
petLookup[pet:lower()] = pet
end
— Helper function to convert a string to lowercase
local function toLower(str)
return string.lower(str)
end
— Compute the Levenshtein distance between two strings
local function levenshtein(str1, str2)
local len1 = #str1
local len2 = #str2
local matrix = {}
— Initialize the matrix
for i = 0, len1 do
matrix[i] = {}
matrix[i][0] = i
end
for j = 0, len2 do
matrix[0][j] = j
end
for i = 1, len1 do
for j = 1, len2 do
local cost = (str1:sub(i, i) == str2:sub(j, j)) and 0 or 1
matrix[i][j] = math.min(
matrix[i-1][j] + 1, — deletion
matrix[i][j-1] + 1, — insertion
matrix[i-1][j-1] + cost — substitution
)
end
end
return matrix[len1][len2]
end
— Suggest closest matching pet names based on Levenshtein distance threshold
local function suggestPets(input, threshold)
local suggestions = {}
input = toLower(input)
for petLower, petOriginal in pairs(petLookup) do
local dist = levenshtein(input, petLower)
if dist 0 then
print(“Did you mean one of these?”)
for _, sug in ipairs(suggestions) do
print(” – ” .. sug)
end
else
print(“No similar pet names found.”)
end
end
end
end
“`
Screenshot Examples
How to Use This Prompt
- validPets: list of valid pet names.
- petLookup: lookup table for pet names.
- toLower: converts string to lowercase.
- levenshtein: computes string distance metric.
- suggestPets: suggests pet names based on input.
- spawnPet: function to spawn a pet.
- getUserInput: retrieves user input from console.
- inputPet: user input for pet name.
Tips for Best Results
- Use Lowercase: Always convert user input to lowercase for consistent validation.
- Levenshtein Distance: Implement this algorithm to suggest similar pet names for user input.
- Input Validation: Check for empty input to prevent errors and guide users effectively.
- Placeholder Comments: Use clear comments for placeholder functions to indicate where actual code should be implemented.
FAQ
- What is the purpose of the validPets list?
It defines the names of pets that can be spawned in the Adopt Me game. - How does the script suggest similar pet names?
It uses the Levenshtein distance to find names close to the user's input. - What does the spawnPet function do?
It is a placeholder for the actual API call to spawn a pet in the game. - What happens if the user inputs an invalid pet name?
The script suggests similar names based on the Levenshtein distance threshold.
Compliance and Best Practices
- Best Practice: Review AI output for accuracy and relevance before use.
- Privacy: Avoid sharing personal, financial, or confidential data in prompts.
- Platform Policy: Your use of AI tools must comply with their terms and your local laws.
Revision History
- Version 1.0 (February 2026): Initial release.


