chore: add issue templates

This commit is contained in:
Crome696 2026-07-08 12:34:29 +02:00
parent 4f45c3491d
commit c7fc87cecb
10 changed files with 2329 additions and 15 deletions

244
.github/ISSUE_TEMPLATE/crafting.yml vendored Normal file
View file

@ -0,0 +1,244 @@
name: "🛠️ Crafting Info"
description: Create a new ticket for a new or changed Ultima Online crafting recipe, resource, tool, BOD, recipe scroll, or crafting system info
title: "Crafting: <recipe, resource, or system>"
labels: ["ultima-online", "triage", "crafting"]
body:
- type: input
id: name
attributes:
label: Crafting Entry Name
description: The recipe, resource, tool, reward, craft system, or crafting mechanic name.
validations:
required: true
- type: dropdown
id: request-type
attributes:
label: Request Type
multiple: true
options:
- New Craftable Item
- Existing Recipe Change
- Crafting Resource / Subresource
- Recipe Scroll / Learned Recipe
- Runic Tool
- Bulk Order Deed (BOD)
- Tool / Station / Add-on
- Craft Gump / UI
- Success / Exceptional / Quality Formula
- Skill Requirement / Secondary Skill
- Vendor / Reward / Drop Source
- Harvesting Link
- Parity / Migration Info
- Custom / Unknown
validations:
required: true
- type: dropdown
id: craft-system
attributes:
label: Craft System / Skill
multiple: true
options:
- Alchemy
- Blacksmithy
- Bowcraft / Fletching
- Carpentry
- Cartography
- Cooking
- Inscription
- Tailoring
- Tinkering
- Imbuing
- Masonry
- Glassblowing
- Basket Weaving
- Bulk Orders
- Harvesting / Resource Gathering
- Vendor / Reward System
- Unknown / Other
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the crafting info, recipe, resource, tool, BOD, or system behavior and the intended player-facing result.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, gump captures, recipe lists, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official recipe, resource, reward, or publish note
https://www.uoguide.com/... — skill, recipe, BOD, resource, or history notes
https://github.com/ServUO/ServUO/... — engine or craft definition precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- Crafting
- Harvesting / Resource Gathering
- Economy / Trading
- PvM Loot Source
- PvP / Felucca Risk
- Bulk Orders
- Vendor / Reward Loop
- Quest / Narrative
- Housing / Add-ons / Decoration
- New Player Progression
- Veteran / Prestige
- Event / Seasonal
- Unknown
validations:
required: true
- type: textarea
id: recipe-details
attributes:
label: Recipe / Crafting Details
description: |
Describe output item, craft category, recipe group, craft gump entry, recipe ID, cliloc/name, required expansion, and whether the recipe is normal, rare, quest, or learned.
placeholder: |
Output item:
Craft category / gump group:
Recipe ID:
Recipe rarity/source:
Required expansion:
validations:
required: true
- type: textarea
id: resources-requirements
attributes:
label: Resources / Requirements
description: |
List consumed resources, subresources, amounts, hue/material inheritance, required tools, stations, heat/oven/mill context, mana/stamina/hits cost, and any prerequisite items.
placeholder: |
Resources:
Subresources:
Tool/station:
Additional costs:
validations:
required: false
- type: textarea
id: skill-formulas
attributes:
label: Skill / Success / Exceptional Formulas
description: |
Add primary skill, secondary skills, min/max skill ranges, success chance, exceptional chance, quality behavior, maker's mark rules, and expected test values.
validations:
required: false
- type: textarea
id: output-properties
attributes:
label: Output Properties / Item Behavior
description: |
Describe durability, stackability, weight, hue, material bonuses, item properties, magical rolls, runic behavior, blessed/quest/newbied/bound behavior, repairability, and decay.
validations:
required: false
- type: textarea
id: recipe-scrolls-learning
attributes:
label: Recipe Scrolls / Learning
description: |
If applicable, describe recipe scroll ID, learning requirements, learned/unlearned craft gump state, drop source, quest source, satchel source, and duplicate-learning behavior.
validations:
required: false
- type: textarea
id: bod-rewards-vendors
attributes:
label: BODs / Rewards / Vendors
description: |
If applicable, describe Bulk Order Deed behavior, reward pools, vendor availability, trainer/vendor inventory, turn-in cooldowns, reward odds, and related economic sinks/sources.
validations:
required: false
- type: textarea
id: economy-balance
attributes:
label: Economy / Balance Impact
description: |
Describe resource faucet/sink impact, gold/hour or item/hour expectations, rarity, tradeability, insurance/blessing impact, storage impact, and anti-farm or dupe concerns.
validations:
required: false
- type: textarea
id: restrictions
attributes:
label: Restrictions / Era / Rules
description: |
Add expansion gates, race requirements, facet/map restrictions, quest gates, account limits, recipe rarity, recipe source limits, and exploit/bot concerns.
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add craft gump group, cliloc names, item art, hue, tooltip lines, recipe scroll text, tool/add-on art, sounds, animations, or localization notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known CraftSystem/Def*.cs files, CraftItem entries, SetNeededExpansion gates, Recipe IDs, resource classes, item classes, BOD profiles, tests, or code anchors if known.
placeholder: |
Craft definition:
Item/resource classes:
Recipe ID:
Tests:
validations:
required: false

291
.github/ISSUE_TEMPLATE/event.yml vendored Normal file
View file

@ -0,0 +1,291 @@
name: "🎉 New Event"
description: Create a new ticket for a new or changed Ultima Online event, seasonal window, scheduled activity, encounter, live event, or event system behavior
title: "Event: <event name>"
labels: ["ultima-online", "triage", "event"]
body:
- type: input
id: name
attributes:
label: Event Name
description: The event, seasonal window, live event, encounter, activity, or event system name.
validations:
required: true
- type: dropdown
id: event-type
attributes:
label: Event Type
multiple: true
options:
- Seasonal / Holiday Event
- Live / GM Event
- Scheduled Recurring Event
- Daily / Weekly / Monthly Activity
- World Event
- Town Invasion
- Dungeon / Encounter Event
- Champion / Spawn Event
- Boss / Peerless Event
- Quest / Narrative Event
- PvP Event
- Crafting / Resource Event
- Vendor / Reward Event
- Decoration / Static Event
- Anniversary / Shard Event
- Maintenance / Reset Event
- Parity / Migration Info
- Custom / Unknown
validations:
required: true
- type: dropdown
id: event-system
attributes:
label: Event System / Scope
multiple: true
options:
- EventScheduler / Calendar
- EventSink / Game Hook
- Timer / Controller
- Spawn Package / Generic Spawner
- Region / Facet Rule
- Quest System
- Champion Spawn
- Peerless / Boss Encounter
- Vendor / Reward Store
- Crafting / Harvesting
- Decoration / Static Placement
- Gump / UI
- Staff Command / Tooling
- Data Migration / Parity
- Custom / Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the event, seasonal behavior, scheduled activity, encounter, or system behavior and the intended player-facing result.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, announcements, event notes, videos, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official event, reward, schedule, or publish note
https://www.uoguide.com/... — event mechanics, history, location, reward, or spawn notes
https://github.com/ServUO/ServUO/... — engine or event system precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: facets
attributes:
label: Facets / Maps
multiple: true
options:
- Felucca
- Trammel
- Ilshenar
- Malas
- Tokuno
- Ter Mur
- Eodon
- Internal / Custom
- Unknown
validations:
required: true
- type: textarea
id: schedule-window
attributes:
label: Schedule / Duration
description: |
Describe start/end dates, time of day, timezone, recurrence, activation window, daily/weekly/monthly/yearly schedule, manual start/stop rules, and expected overlap behavior.
placeholder: |
Start:
End:
Timezone:
Recurrence:
Manual enable/disable:
validations:
required: true
- type: textarea
id: locations-regions
attributes:
label: Locations / Regions
description: |
List facets, towns, dungeons, regions, coordinates, entrances, safe zones, guard zones, event areas, and any region rule changes.
placeholder: |
Facet/map:
Region/town/dungeon:
Coordinates:
Region rules:
validations:
required: true
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Quest / Narrative
- Spawns / Encounters
- Boss / Peerless
- Champion Spawn
- Crafting / Resources
- Harvesting
- Economy / Rewards
- Vendor / Token Store
- Housing / Decoration
- Travel / Exploration
- New Player Progression
- Veteran / Prestige
- Community / Social
- Staff Operations
- Unknown
validations:
required: true
- type: textarea
id: event-content
attributes:
label: Event Content / Components
description: |
Describe all event pieces: mobiles, spawns, items, quest steps, decorations, vendors, rewards, regions, gumps, commands, controllers, scripts, and data files.
placeholder: |
Mobiles/spawns:
Items/rewards:
Quests/objectives:
Vendors/stores:
Decorations/statics:
Commands/controllers:
validations:
required: true
- type: textarea
id: mechanics-rules
attributes:
label: Mechanics / Rules
description: |
Describe event objectives, scoring, participation, eligibility, entry/exit rules, phasing, cooldowns, reset behavior, death rules, region checks, kill credit, item marking, and completion conditions.
validations:
required: false
- type: textarea
id: rewards-economy
attributes:
label: Rewards / Loot / Economy
description: |
Describe loot tables, reward pools, token/currency flow, drop rates, reward caps, vendor prices, blessed/insured/tradeable behavior, resource faucets/sinks, gold/hour or item/hour impact, storage impact, and anti-farm or dupe concerns.
validations:
required: false
- type: textarea
id: pvp-pvm-safety
attributes:
label: PvP / PvM / Safety
description: |
Describe PvP flagging, Felucca risk, guard zones, party/group rules, solo viability, difficulty, spawn density, boss mechanics, counterplay, griefing risks, bot risks, safe-zone abuse, and exploit concerns.
validations:
required: false
- type: textarea
id: participation-access
attributes:
label: Participation / Access Rules
description: |
Add account limits, character limits, skill/race/faction requirements, quest gates, key/access items, cooldowns, repeatability, event opt-in/out, young-player handling, and shard custom policy.
validations:
required: false
- type: textarea
id: lifecycle-configuration
attributes:
label: Lifecycle / Configuration
description: |
If known, describe EventScheduler, ScheduledEvent, YearlyScheduledEvent, CallbackScheduledEvent, IRecurrencePattern, TimeZoneInfo, EventSink hooks, Timer use, Configure/Initialize registration, cleanup/Cancel(), restart behavior, save/load, and config flags.
placeholder: |
Scheduler/event type:
Timezone:
Registration:
Cleanup/cancel:
Save/load behavior:
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add cliloc names, messages, announcement text, gumps, item art, mobile body/hue/title, static decoration, sounds, animations, map markers, web/Discord announcement needs, or localization notes.
validations:
required: false
- type: textarea
id: monitoring-rollback
attributes:
label: Monitoring / Rollback
description: |
Describe logging, staff commands, metrics to monitor, cleanup scripts, disable switches, rollback plan, cleanup after event end, and what should happen to spawned items/mobiles/rewards when the event ends.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known event classes, scheduler classes, controller items, spawn data, region files, quest files, reward/item/mobile classes, config files, tests, or code anchors if known.
placeholder: |
Event/scheduler class:
Controller/spawn data:
Items/mobiles/rewards:
Regions/quests/gumps:
Tests:
validations:
required: false

222
.github/ISSUE_TEMPLATE/item.yml vendored Normal file
View file

@ -0,0 +1,222 @@
name: "🎒 New Item"
description: Create a new ticket for a new Ultima Online item, equipment piece, artifact, reward, resource, or rare
title: "Item: <item name>"
labels: ["ultima-online", "triage", "item"]
body:
- type: input
id: name
attributes:
label: Item Name
description: The in-game item name as it should appear to players.
validations:
required: true
- type: dropdown
id: item-categories
attributes:
label: Item Categories
multiple: true
options:
- Equipment
- Armor
- Weapons
- Shields
- Jewelry
- Talismans
- Clothing
- Item Sets
- Artifacts
- Veteran Rewards
- Craftables
- Resources
- Plants & Seeds
- Rares / Collectibles
- Containers
- Consumables
- Reagents
- Ammunition
- Tools
- Books / Scrolls
- Deeds
- House Add-ons / Decorations
- Quest Items
- Event Items
- Boats / Ship Items
- Unknown / Other
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the item, its role, and the intended player-facing behavior.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official wording, source, or publish note
https://www.uoguide.com/... — mechanic/history notes
https://github.com/ServUO/ServUO/... — engine precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: source-availability
attributes:
label: Source / Availability
multiple: true
options:
- Monster Loot
- Boss / Champion / Peerless Drop
- Treasure Chest / Treasure Map
- Vendor
- Crafting
- Harvesting / Resource Gathering
- Quest Reward
- Event Reward
- Veteran Reward
- Artifact Drop
- Bulk Order Reward
- Plant System / Gardening
- Decoration / Static Placement
- Housing / Add-on
- Player Created
- Staff / GM Only
- Unknown
validations:
required: true
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Economy / Trading
- Crafting
- Harvesting
- Housing / Decoration
- Gardening
- Quest / Narrative
- Event / Seasonal
- New Player Progression
- Veteran / Prestige
- Roleplay / Social
- Unknown
validations:
required: true
- type: textarea
id: item-mechanics
attributes:
label: Item Mechanics
description: |
Describe equip effects, use effects, charges, cooldowns, durability, decay, stackability, ownership, binding, blessed/cursed/newbied behavior, or other mechanics.
validations:
required: false
- type: textarea
id: equipment-details
attributes:
label: Equipment Details
description: |
If applicable, describe layer/slot, weapon speed/damage, armor rating/resists, required skills/stats/race, durability, repairability, and equip restrictions.
placeholder: |
Layer/slot:
Damage/speed or armor/resists:
Requirements:
Durability/repair:
validations:
required: false
- type: textarea
id: item-properties
attributes:
label: Item Properties / Set Bonuses
description: |
If applicable, list magical item properties, artifact properties, set pieces, set bonuses, intensity ranges, caps, and whether properties are fixed or generated.
validations:
required: false
- type: textarea
id: crafting-resources
attributes:
label: Crafting / Resources
description: |
If applicable, describe recipe, craft system, required resources, skill requirements, exceptional behavior, resource output, harvesting rules, or plant/seed growth rules.
validations:
required: false
- type: textarea
id: loot-rewards-economy
attributes:
label: Loot / Rewards / Economy
description: |
Describe drop source, rarity, tradeability, blessing/insurance impact, faucet/sink effect, vendor value, stack size, storage impact, and expected volume per day.
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add item ID/art, hue, layer, cliloc name, tooltip lines, sound, animation, container art, gump art, or other client presentation notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, files, similar items, loot tables, craft definitions, reward stores, tests, or code anchors if known.
placeholder: |
Similar class:
Loot/craft/reward data:
Tests:
validations:
required: false

View file

@ -1,13 +1,14 @@
name: "💡 Feature Request"
description: Create a new ticket for a new feature request
title: "ItemProperty: <title>"
name: "✨ New Item Property"
description: Create a new ticket for a new Ultima Online item property
title: "Item Property: <property name>"
labels: ["ultima-online", "triage", "item-property"]
body:
- type: input
id: name
attributes:
label: Name
label: Property Name
description: The in-game item property name as it should appear to players.
validations:
required: true
@ -16,14 +17,27 @@ body:
attributes:
label: Description
description: |
Describe the mechanic of item property.
Describe the item property and its intended mechanic.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/ultima-online-wiki/items/magic-item-properties/ — official wording
https://www.uoguide.com/... — mechanic/history notes
validations:
required: false
- type: textarea
id: mechanic-pvm
attributes:
label: Game Mechanic (PVM)
label: Game Mechanic (PvM)
description: |
Specify the mechanic for player versus monsters.
validations:
@ -32,7 +46,7 @@ body:
- type: textarea
id: mechanic-pvp
attributes:
label: Game Mechanic (PVP)
label: Game Mechanic (PvP)
description: |
Specify the additional mechanic for player versus player.
@ -41,7 +55,7 @@ body:
attributes:
label: Intensity Range
description: |
Possible Intensity Range fixed, values or %
Possible intensity range, fixed values, or percentage values.
validations:
required: true
@ -49,18 +63,21 @@ body:
id: imbue-weight
attributes:
label: Imbue Weight
description: Imbuing weight, "No", "N/A", or unknown.
- type: input
id: total-cap
attributes:
label: Total Cap
description: Total cap across equipment, "N/A", or unknown.
validations:
required: true
- type: checkboxes
- type: dropdown
id: found-on
attributes:
label: Found on
multiple: true
options:
- Armor
- Jewelry
@ -74,12 +91,12 @@ body:
- type: dropdown
id: type
attributes:
label: Found on
label: Property Type
multiple: true
options:
- Persistent
- Hit
- Permament
- Permanent
- Unknown
validations:
required: true
@ -96,21 +113,22 @@ body:
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
- Custom
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: Whats the initial publish?
description: What is the initial publish?
placeholder: unknown
validations:
required: false
required: false

211
.github/ISSUE_TEMPLATE/mobile.yml vendored Normal file
View file

@ -0,0 +1,211 @@
name: "🐉 New Mobile"
description: Create a new ticket for a new Ultima Online mobile, monster, or NPC
title: "Mobile: <mobile name>"
labels: ["ultima-online", "triage", "mobile"]
body:
- type: input
id: name
attributes:
label: Mobile Name
description: The in-game creature or NPC name as it should appear to players.
validations:
required: true
- type: dropdown
id: mobile-type
attributes:
label: Mobile Type
multiple: true
options:
- Monster
- Boss
- Champion Spawn Boss
- Animal
- Tameable Creature
- Town NPC
- Vendor
- Trainer
- Quest Giver
- Escortable NPC
- Decorative / Ambient
- Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the mobile, its role, and the intended player-facing behavior.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official wording or location
https://www.uoguide.com/... — mechanic/history notes
https://github.com/ServUO/ServUO/... — engine precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: facets
attributes:
label: Facets / Maps
multiple: true
options:
- Felucca
- Trammel
- Ilshenar
- Malas
- Tokuno
- Ter Mur
- Eodon
- Internal / Custom
- Unknown
validations:
required: true
- type: textarea
id: spawn-locations
attributes:
label: Spawn Locations
description: |
List known spawn areas, dungeons, towns, regions, events, or quest locations.
placeholder: |
Dungeon/region:
Coordinates:
Spawn conditions:
validations:
required: false
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Quest / Narrative
- Economy / Vendor
- Taming
- Champion / Boss Encounter
- Event / Seasonal
- Town / Social
- Unknown
validations:
required: true
- type: textarea
id: stats-skills
attributes:
label: Stats and Skills
description: |
Add expected STR/DEX/INT, hits/stam/mana, damage, resists, skills, fame, karma, virtual armor, or other stat data.
placeholder: |
STR/DEX/INT:
Hits/Stam/Mana:
Damage:
Resists:
Skills:
Fame/Karma:
validations:
required: false
- type: textarea
id: ai-behavior
attributes:
label: AI / Behavior / Mechanics
description: |
Describe AI type, combat behavior, special abilities, speech, movement, faction/notoriety, PvM/PvP differences, cooldowns, and counterplay.
validations:
required: false
- type: textarea
id: loot-rewards
attributes:
label: Loot / Rewards / Economy
description: |
Describe loot packs, gold, artifacts, quest rewards, vendor inventory, resource output, or why the mobile should have no rewards.
validations:
required: false
- type: textarea
id: taming-control
attributes:
label: Taming / Control
description: |
If applicable, describe taming skill, control slots, bonding, pack instinct, favorite food, pet abilities, and training rules.
validations:
required: false
- type: textarea
id: npc-services-dialogue
attributes:
label: NPC Services / Dialogue
description: |
If applicable, describe vendor services, trainer skills, quest dialogue, context menu entries, titles, greetings, or keywords.
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add body ID, hue, sound, animation, paperdoll/equipment, cliloc names, title, or other client presentation notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, files, similar mobiles, spawn data, tests, or code anchors if known.
placeholder: |
Similar class:
Spawn data:
Tests:
validations:
required: false

284
.github/ISSUE_TEMPLATE/quest.yml vendored Normal file
View file

@ -0,0 +1,284 @@
name: "📜 New Quest"
description: Create a new ticket for a new or changed Ultima Online quest, quest chain, objective, quest giver, reward, or access unlock
title: "Quest: <quest name>"
labels: ["ultima-online", "triage", "quest"]
body:
- type: input
id: name
attributes:
label: Quest Name
description: The quest, quest chain, quest giver, access unlock, or objective name.
validations:
required: true
- type: dropdown
id: request-type
attributes:
label: Request Type
multiple: true
options:
- New Quest
- Existing Quest Change
- Quest Chain
- Quest Objective
- Quest Giver / NPC
- Quest Reward
- Access Unlock / Context Flag
- Skill Training / New Haven
- Peerless / Dungeon Access
- Delivery / Collection Flow
- Escort Quest
- Quest Gump / UI
- Quest Config / Registration
- Parity / Migration Info
- Custom / Unknown
validations:
required: true
- type: dropdown
id: quest-system
attributes:
label: Quest System / Area
multiple: true
options:
- ML Quest System
- Classic Quest / Escort
- New Haven
- Heartwood
- Sanctuary
- Bedlam
- Blighted Grove
- The Citadel
- Twisted Weald
- Prism of Light
- Painted Caves
- Labyrinth
- Palace of Paroxysmus
- Tokuno
- Spellweaving
- Paladin / Chivalry
- Necromancer / Necromancy
- Peerless Access
- Event / Seasonal
- Custom / Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the quest, quest chain, access unlock, or quest system behavior and the intended player-facing result.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, gump captures, quest text, videos, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official quest, location, reward, or publish note
https://www.uoguide.com/... — objective, quest chain, NPC, reward, or history notes
https://github.com/ServUO/ServUO/... — engine or quest definition precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: facets
attributes:
label: Facets / Maps
multiple: true
options:
- Felucca
- Trammel
- Ilshenar
- Malas
- Tokuno
- Ter Mur
- Eodon
- Internal / Custom
- Unknown
validations:
required: true
- type: textarea
id: quest-givers-locations
attributes:
label: Quest Givers / Locations
description: |
List quest giver NPCs, destination NPCs, regions, dungeons, towns, facets, coordinates, entrances, and where the quest should be offered or completed.
placeholder: |
Quest giver NPC/type:
Destination NPC/type:
Region/dungeon/town:
Coordinates:
Spawn/source:
validations:
required: true
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- Quest / Narrative
- PvM
- PvP / Felucca Risk
- New Player Progression
- Skill Training
- Dungeon / Access Unlock
- Peerless / Boss Encounter
- Crafting / Resources
- Economy / Rewards
- Travel / Exploration
- Taming / Pets
- Event / Seasonal
- Roleplay / Social
- Veteran / Prestige
- Unknown
validations:
required: true
- type: textarea
id: objectives-steps
attributes:
label: Objectives / Steps
description: |
Describe each objective and step: kill, deliver, obtain, collect, escort, gain skill, use item, speak to NPC, return/report back, or complete a chain stage.
placeholder: |
1. Accept from:
2. Objective(s):
3. Report back / turn-in:
4. Next chain quest:
validations:
required: true
- type: textarea
id: rewards-access
attributes:
label: Rewards / Access Unlocks
description: |
Describe rewards, item choices, gold, skill acceleration, titles, quest items, context flags, access unlocks, Spellweaving/SummonFey/SummonFiend/BedlamAccess-style flags, or no-reward behavior.
validations:
required: false
- type: textarea
id: prerequisites-repeatability
attributes:
label: Prerequisites / Repeatability / Chain Rules
description: |
Add quest prerequisites, race/faction/skill requirements, account limits, one-time/repeatable rules, cooldowns, ChainID, OneTime, MaxConcurrent, activation rules, and chain order.
validations:
required: false
- type: textarea
id: dialogue-gumps
attributes:
label: Dialogue / Gumps / Quest Log
description: |
Add offer text, refuse text, progress text, completion/report-back text, clilocs, QuestOfferGump, QuestConversationGump, QuestRewardGump, QuestLogGump, or detailed-log notes.
validations:
required: false
- type: textarea
id: mechanics-rules
attributes:
label: Mechanics / Rules / Edge Cases
description: |
Describe accept/decline/cancel behavior, report-back rules, quest item marking, delivery item refunds, failure/resign behavior, objective tracking, region checks, kill credit, escort pathing, and save/load behavior.
validations:
required: false
- type: textarea
id: items-mobiles-spawns
attributes:
label: Items / Mobiles / Spawns
description: |
List related quest items, reward items, required mobs, quest givers, destination NPCs, spawns, bosses, escortables, drop sources, and whether new item/mobile/spawn templates are also needed.
validations:
required: false
- type: textarea
id: economy-balance
attributes:
label: Economy / Balance Impact
description: |
Describe reward value, gold/item faucet impact, repeat farming risk, tradeability, blessing/insurance behavior, resource sinks, storage impact, and anti-farm or dupe concerns.
validations:
required: false
- type: textarea
id: config-data
attributes:
label: Quest Config / Data
description: |
If known, describe MLQuestSystem registration, MLQuests.cfg row, quester= override, MLQuestContext flags, MLQuestObjective types, activation, chain data, or migration source.
placeholder: |
Quest type:
MLQuests.cfg row:
quester=:
Objective types:
Context flags:
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add cliloc names, quest log text, gump layout, item art, NPC body/hue/title, tooltip lines, sound, animation, map markers, or localization notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known MLQuest classes, quest definition files, quester classes, objective classes, reward classes, MLQuests.cfg entries, tests, or code anchors if known.
placeholder: |
Quest definition:
Quest giver/mobile:
Item/reward classes:
Config row:
Tests:
validations:
required: false

280
.github/ISSUE_TEMPLATE/skill.yml vendored Normal file
View file

@ -0,0 +1,280 @@
name: "📈 New Skill"
description: Create a new ticket for a new or changed Ultima Online skill, skill mechanic, stat interaction, or training flow
title: "Skill: <skill name>"
labels: ["ultima-online", "triage", "skill"]
body:
- type: input
id: name
attributes:
label: Skill Name
description: The in-game skill name as it should appear to players.
validations:
required: true
- type: dropdown
id: request-type
attributes:
label: Request Type
multiple: true
options:
- New Skill
- Existing Skill Change
- Skill Gain / Training
- Skill Cap / Power Scroll
- Stat Gain / Stat Cap
- Race Interaction
- Skill Mastery
- Tool / Item Interaction
- Vendor / Trainer
- Quest / Objective
- Client UI / Gump
- Custom / Unknown
validations:
required: true
- type: dropdown
id: skill-category
attributes:
label: Skill Category
multiple: true
options:
- Combat
- Healing / Veterinary
- Magical
- Bardic
- Rogue / Thieving / Stealth
- Creatures / Sensing
- Crafting
- Resource Gathering
- Trade / Economy
- Stat / Race System
- Removed / Legacy
- Custom / Unknown
validations:
required: true
- type: dropdown
id: affected-skills
attributes:
label: Affected Skill(s)
multiple: true
options:
- Alchemy
- Anatomy
- Animal Lore
- Animal Taming
- Archery
- Arms Lore
- Begging
- Blacksmithy
- Bowcraft / Fletching
- Bushido
- Camping
- Carpentry
- Cartography
- Chivalry
- Cooking
- Detecting Hidden
- Discordance
- Evaluating Intelligence
- Fencing
- Fishing
- Focus
- Forensic Evaluation
- Healing
- Herding
- Hiding
- Imbuing
- Inscription
- Item Identification
- Lockpicking
- Lumberjacking
- Mace Fighting
- Magery
- Meditation
- Mining
- Musicianship
- Mysticism
- Necromancy
- Ninjitsu
- Parrying
- Peacemaking
- Poisoning
- Provocation
- Remove Trap
- Resisting Spells
- Snooping
- Spellweaving
- Spirit Speak
- Stealing
- Stealth
- Swordsmanship
- Tactics
- Tailoring
- Taste Identification
- Throwing
- Tinkering
- Tracking
- Veterinary
- Wrestling
- Enticement (Removed / Legacy)
- New / Custom Skill
- Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the skill, skill change, training flow, or stat/race interaction and the intended player-facing behavior.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, videos, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official wording, source, or publish note
https://www.uoguide.com/Skills — skill category, mechanics, formulas, or history
https://github.com/ServUO/ServUO/... — engine precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Crafting
- Harvesting
- Economy / Trading
- Housing / Storage
- Taming / Pets
- Bard Support
- Thieving / Stealth
- Travel / Exploration
- Quest / Narrative
- New Player Progression
- Veteran / Prestige
- Monster / NPC AI
- Unknown
validations:
required: true
- type: textarea
id: skill-mechanics
attributes:
label: Skill Mechanics
description: |
Describe active use, passive effects, success/failure results, cooldowns, targeting, tools/items required, region/facet limits, and any PvM/PvP differences.
validations:
required: false
- type: textarea
id: gain-training
attributes:
label: Skill Gain / Training
description: |
Describe gain chance, difficulty bands, anti-macro rules, accelerated gain, New Haven-style objectives, trainer behavior, skill locks, and training limits.
validations:
required: false
- type: textarea
id: stats-caps
attributes:
label: Stats / Caps / Progression
description: |
Describe primary/secondary stat associations, stat gain, skill cap, Power Scrolls, Scrolls of Alacrity/Transcendence, total skill cap, or race-specific progression.
validations:
required: false
- type: textarea
id: formulas-values
attributes:
label: Formulas / Values / Test Cases
description: |
Add success formulas, skill ranges, stat values, cap values, timings, chance values, expected test values, and edge cases.
validations:
required: false
- type: textarea
id: items-tools-resources
attributes:
label: Items / Tools / Resources
description: |
If applicable, describe required tools, resources consumed or produced, skill scrolls, training items, crafting recipes, BODs, vendors, or loot/reward items.
validations:
required: false
- type: textarea
id: restrictions
attributes:
label: Restrictions / Era / Region Rules
description: |
Add expansion gates, race requirements, facet/map restrictions, town/guard/housing rules, criminal/notoriety effects, mount restrictions, and exploit/bot concerns.
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add skill list category, skill title/cliloc, gump UI, context menu, messages, animations, sounds, buff icons, or tooltip notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, files, similar skills, skill IDs, skills.json data, tests, or code anchors if known.
placeholder: |
Similar skill:
Skill ID / category:
Data/config:
Tests:
validations:
required: false

225
.github/ISSUE_TEMPLATE/spawn.yml vendored Normal file
View file

@ -0,0 +1,225 @@
name: "🧭 New Spawn"
description: Create a new ticket for a new or changed Ultima Online spawn, spawn package, encounter placement, or world population rule
title: "Spawn: <spawn name or location>"
labels: ["ultima-online", "triage", "spawn"]
body:
- type: input
id: name
attributes:
label: Spawn Name / Location
description: The player-facing spawn name, dungeon/region name, or location summary.
validations:
required: true
- type: dropdown
id: spawn-type
attributes:
label: Spawn Type
multiple: true
options:
- Static Spawn Package
- Generic Spawner
- Mobile / Creature Spawn
- NPC / Vendor / Trainer Spawn
- Town / Guard / Civilian Spawn
- Dungeon Spawn
- Champion Spawn
- Boss / Peerless Encounter
- Quest Spawn
- Event / Seasonal Spawn
- Escort / Escortable NPC Spawn
- Resource / Harvest Spawn
- Treasure / Chest Spawn
- Ambient / Decorative Spawn
- Migration / Parity Spawn
- Custom / Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the spawn, what should appear, why it belongs there, and the intended player-facing behavior.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, map captures, spawn dumps, videos, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official location, dungeon, event, or publish note
https://www.uoguide.com/... — spawn area, creature list, mechanics, or history
https://github.com/ServUO/ServUO/... — engine or spawn-pack precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: facets
attributes:
label: Facets / Maps
multiple: true
options:
- Felucca
- Trammel
- Ilshenar
- Malas
- Tokuno
- Ter Mur
- Eodon
- Internal / Custom
- Unknown
validations:
required: true
- type: textarea
id: region-location
attributes:
label: Region / Location / Coordinates
description: |
List the dungeon, town, region, facet, coordinates, bounds, Z range, entrance/exit points, and any nearby landmarks.
placeholder: |
Map/facet:
Region/dungeon/town:
Coordinates or bounds:
Z range:
Landmark/entrance:
validations:
required: true
- type: textarea
id: spawn-entries
attributes:
label: Spawn Entries
description: |
List each mobile, item, controller, chest, resource, or encounter entry with expected count, probability, home range, and grouping rules.
placeholder: |
- Type: Skeleton; count: 5; homeRange: 12; probability: 1.0
- Type: Zombie; count: 3; homeRange: 12; probability: 0.6
validations:
required: true
- type: textarea
id: spawn-timing-density
attributes:
label: Timing / Density / Range
description: |
Describe min/max delay, respawn timing, spawn count, home range, walking range, leash behavior, despawn rules, active hours, and population density.
validations:
required: false
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Champion / Boss Encounter
- Quest / Narrative
- Event / Seasonal
- Taming / Pets
- Economy / Farming
- Crafting / Resources
- Treasure Hunting
- Travel / Exploration
- Town / Social
- New Player Progression
- Veteran / Prestige
- Staff / Operations
- Unknown
validations:
required: true
- type: textarea
id: mechanics-rules
attributes:
label: Mechanics / Region Rules
description: |
Describe aggro radius, AI behavior, spawn triggers, quest gates, region hooks, travel restrictions, notoriety/criminal rules, guard rules, pathing, and PvM/PvP differences.
validations:
required: false
- type: textarea
id: rewards-economy
attributes:
label: Rewards / Loot / Economy
description: |
Describe loot, gold/hour expectations, resource output, artifacts, Power Scrolls, quest rewards, vendor inventory, faucet/sink impact, and anti-farm concerns.
validations:
required: false
- type: textarea
id: safety-exploit-risk
attributes:
label: Safety / Exploit / Bot Risk
description: |
Note safe spots, stuck-pathing, line-of-sight abuse, house/teleport blocking, bot farming risk, lure risk, AFK farming risk, and rollback/monitoring needs.
validations:
required: false
- type: textarea
id: data-format
attributes:
label: Data Format / Era Profile
description: |
If known, describe the expected spawn package folder, JSON shape, era profile, spawner type, migration source, import command, or generation rule.
placeholder: |
Distribution/Data/Spawns/<era>/<facet>/...
type: GenericSpawner
era profile:
migration source:
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, data files, similar spawn packages, regions, mobiles, tests, or code anchors if known.
placeholder: |
Similar spawn package:
Region file:
Mobile classes:
Tests:
validations:
required: false

244
.github/ISSUE_TEMPLATE/spell.yml vendored Normal file
View file

@ -0,0 +1,244 @@
name: "✨ New Spell"
description: Create a new ticket for a new Ultima Online spell, spell school entry, mastery, or magical ability
title: "Spell: <spell name>"
labels: ["ultima-online", "triage", "spell"]
body:
- type: input
id: name
attributes:
label: Spell Name
description: The in-game spell name as it should appear to players.
validations:
required: true
- type: dropdown
id: spell-school
attributes:
label: Spell School / Source
multiple: true
options:
- Magery
- Necromancy
- Chivalry
- Bushido
- Ninjitsu
- Spellweaving
- Mysticism
- Spell Mastery
- Bard Mastery
- Racial Ability
- Monster / NPC Spell
- Quest / Event Spell
- Custom / Unknown
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the spell, its role, and the intended player-facing behavior.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, screenshots, videos, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official wording, source, or publish note
https://www.uoguide.com/... — mechanics, reagents, formulas, or history
https://github.com/ServUO/ServUO/... — engine precedent
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish?
placeholder: unknown
validations:
required: false
- type: dropdown
id: spell-type
attributes:
label: Spell Type
multiple: true
options:
- Direct Damage
- Damage over Time
- Healing
- Cure / Cleanse
- Buff
- Debuff
- Summon
- Transformation
- Field / Ground Effect
- Area of Effect
- Travel / Teleport
- Utility
- Reveal / Detection
- Resource / Reagent Interaction
- Pet / Summon Interaction
- Quest / Event Mechanic
- Unknown
validations:
required: true
- type: dropdown
id: target-type
attributes:
label: Target Type
multiple: true
options:
- Self
- Ally
- Enemy Mobile
- Any Mobile
- Pet / Controlled Creature
- Summon
- Corpse
- Item
- Ground / Location
- Area / Radius
- Field Line
- Region
- No Target
- Unknown
validations:
required: true
- type: dropdown
id: player-loops
attributes:
label: Player Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- PvP Group Combat
- Travel / Exploration
- Taming / Pets
- Summons / Followers
- Crafting / Inscription
- Economy / Reagents / Scrolls
- Quest / Narrative
- Event / Seasonal
- New Player Progression
- Veteran / Prestige
- Monster / NPC AI
- Unknown
validations:
required: true
- type: textarea
id: casting-requirements
attributes:
label: Casting Requirements / Costs
description: |
Add skill requirement, mana cost, reagents, tithing, focus, karma, spellbook/scroll requirements, cooldowns, cast time, recovery time, and interruption rules.
placeholder: |
Skill requirement:
Mana/tithing/focus cost:
Reagents:
Cast time / recovery:
Interrupt/fizzle rules:
validations:
required: false
- type: textarea
id: mechanics-pvm
attributes:
label: Game Mechanic (PvM)
description: |
Specify the spell behavior for player versus monsters, summons, pets, bosses, or NPC AI.
validations:
required: false
- type: textarea
id: mechanics-pvp
attributes:
label: Game Mechanic (PvP)
description: |
Specify player-versus-player behavior, counters, immunity, reflect/resist interaction, field rules, escape options, and group-combat risks.
validations:
required: false
- type: textarea
id: formula-values
attributes:
label: Formulas / Values / Duration
description: |
Add damage, healing, resist checks, skill scaling, stat scaling, radius, range, duration, cooldown, chance formulas, caps, and expected test values.
validations:
required: false
- type: textarea
id: restrictions
attributes:
label: Restrictions / Region Rules
description: |
Add mount restrictions, armor/weapon restrictions, housing/town/dungeon/facet limits, travel blocks, criminal/notoriety effects, safe-zone rules, and era gates.
validations:
required: false
- type: textarea
id: spellbook-scrolls-reagents
attributes:
label: Spellbook / Scrolls / Reagents
description: |
If applicable, describe spellbook entry, scroll item, inscription recipe, reagent consumption, focus item, icon position, or learn/unlock flow.
validations:
required: false
- type: textarea
id: presentation
attributes:
label: Client Presentation
description: |
Add cliloc name, spell icon, buff icon, particle effects, sounds, animations, overhead messages, gump entries, or tooltip notes.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, files, similar spells, spell IDs, registration gates, spellbook data, tests, or code anchors if known.
placeholder: |
Similar spell:
Spell ID / school slot:
Registration gate:
Tests:
validations:
required: false

295
.github/ISSUE_TEMPLATE/system.yml vendored Normal file
View file

@ -0,0 +1,295 @@
name: "⚙️ Engine / System"
description: Create a new ticket for a new or changed Ultima Online engine, subsystem, controller, service, configuration, or cross-content system
title: "System: <engine or system name>"
labels: ["ultima-online", "triage", "system"]
body:
- type: input
id: name
attributes:
label: Engine / System Name
description: The engine, subsystem, controller, service, configuration area, or cross-content system name.
validations:
required: true
- type: dropdown
id: request-type
attributes:
label: Request Type
multiple: true
options:
- New Engine / System
- Existing System Change
- Bug / Regression
- Parity / Migration Info
- Configuration Setting
- Data File / Import / Export
- Persistence / Serialization
- Startup / Shutdown / Lifecycle
- Event Hook / EventSink
- Timer / Scheduler / Controller
- Command / Targeting / Staff Tool
- Gump / UI / Client Presentation
- Performance / Hot Path
- Security / Exploit / Staff Safety
- Tests / Tooling
- Documentation / Operator Runbook
- Custom / Unknown
validations:
required: true
- type: dropdown
id: system-area
attributes:
label: System Area
multiple: true
options:
- Core Server
- UOContent Engine
- RUOContent Custom System
- Configuration / JsonConfig
- Startup / Lifecycle
- World Save / Load
- Accounts / Access
- Networking / Packets
- Commands / Targeting
- Gumps / UI
- EventSink / Generated Events
- Timers / EventScheduler
- Serialization / Persistence
- Regions / Maps / Facets
- Spawns / Encounters
- Loot / Rewards
- Quests / Narrative
- Crafting / Economy
- Housing / Multis
- Vendors / Services
- Skills / Stats / Races
- Combat / Magic
- Items / Mobiles
- Monitoring / Logging
- Tests / Tooling
- Unknown / Other
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: |
Describe the engine/system behavior, problem, requested change, and the intended player-facing or operator-facing result.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: |
Add UO.com, UOGuide, Stratics, ServUO/RunUO, ModernUO docs/code, screenshots, logs, traces, crash reports, or other related URLs.
Use one reference per line and note what each source proves when possible.
placeholder: |
https://uo.com/wiki/... — official mechanics, publish, or ruleset note
https://www.uoguide.com/... — mechanics/history context
https://github.com/ServUO/ServUO/... — engine/system precedent
Log/trace/crash ID — observed behavior or failure mode
validations:
required: false
- type: dropdown
id: era
attributes:
label: Initial Era / Ruleset
options:
- Classic (Pre-T2A)
- The Second Age (T2A)
- Renaissance (UOR)
- Third Dawn (TD)
- Lord Blackthorns Revenge (LBR)
- Age of Shadows (AOS)
- Samurai Empire (SE)
- Mondains Legacy (ML)
- Kingdom Reborn (KR)
- Stygian Abyss (SA)
- High Seas (HS)
- Time of Legends (TOL)
- New Legacy (NL)
- RebirthUO Custom
- Era-Independent / Infrastructure
- Unknown
validations:
required: true
- type: input
id: publish
attributes:
label: Initial Publish
description: What is the initial publish, release, or custom shard milestone?
placeholder: unknown
validations:
required: false
- type: dropdown
id: implementation-layer
attributes:
label: Implementation Layer
multiple: true
options:
- Projects/Server Core Engine
- Projects/UOContent Base Content
- Projects/RUOContent Shard Custom Layer
- Distribution/Data
- Distribution/Configuration
- Tests
- Tooling / Scripts
- Documentation
- Unknown / Needs Discovery
validations:
required: true
- type: dropdown
id: affected-loops
attributes:
label: Affected Gameplay / Operator Loops
multiple: true
options:
- PvM
- PvP / Felucca Risk
- Economy / Rewards
- Crafting / Resources
- Housing / Storage
- Skills / Stats / Progression
- Magic / Combat
- Quests / Events
- Spawns / Encounters
- Travel / Facets / Regions
- Vendors / Services
- New Player Progression
- Veteran / Prestige
- Client Presentation
- Staff Operations
- Server Stability
- Save / Restore / Deployment
- Unknown
validations:
required: true
- type: textarea
id: current-expected-behavior
attributes:
label: Current / Expected Behavior
description: |
Describe current behavior, desired behavior, repro steps if this is a bug, and what should stay unchanged.
placeholder: |
Current:
Expected:
Repro / trigger:
Should not change:
validations:
required: true
- type: textarea
id: configuration-gates
attributes:
label: Configuration / Gates
description: |
Add config keys, default values, Core.* era gates, feature flags, ServerConfiguration/GetSetting/GetOrUpdateSetting use, modernuo.json settings, JsonConfig files, shard overrides, and operator-facing toggles.
validations:
required: false
- type: textarea
id: lifecycle-ownership
attributes:
label: Lifecycle / Ownership
description: |
Describe ConfigurePrompts, Configure, Initialize, CallPriority ordering, EventSink subscriptions, generated events, startup/shutdown, cleanup, ownership of static state, and whether the system can be disabled or reloaded.
validations:
required: false
- type: textarea
id: data-persistence
attributes:
label: Data / Persistence / Save Compatibility
description: |
Describe serialized fields, versioning, world save/load impact, migration needs, JSON/cfg data, source-generated serialization, backward compatibility, rollback behavior, and cleanup of saved entities or controllers.
validations:
required: false
- type: textarea
id: events-timers-threading
attributes:
label: Events / Timers / Threading
description: |
Describe EventSink hooks, generated events, Timer use, EventScheduler scheduling, async/threading expectations, single-threaded game-loop assumptions, cancellation, disposal, and hot-path constraints.
validations:
required: false
- type: textarea
id: admin-ui-tools
attributes:
label: Commands / Gumps / Admin Tools
description: |
Add staff commands, targeting flows, gumps, diagnostics, logging, audit trails, permissions/access levels, operator workflows, and any public/private communication boundaries.
validations:
required: false
- type: textarea
id: content-integration
attributes:
label: Content Integration
description: |
List related items, mobiles, regions, spawns, quests, loot tables, crafting definitions, housing/multi definitions, packets, gumps, clilocs, and data files that interact with this engine/system.
validations:
required: false
- type: textarea
id: performance-risk
attributes:
label: Performance / Scale Risk
description: |
Describe expected call frequency, hot paths, allocations, timers, dictionary/list sizes, world scans, save-time work, startup cost, network traffic, and stress cases.
validations:
required: false
- type: textarea
id: security-fairness-risk
attributes:
label: Security / Fairness / Exploit Risk
description: |
Describe exploit or dupe risk at a safe public level, staff advantage risk, permission boundaries, player-facing fairness, griefing/bot risk, economy abuse, and sensitive details that should stay out of public issue text.
validations:
required: false
- type: textarea
id: side-effects
attributes:
label: Side Effects / Balance Impact
description: |
Describe era/ruleset impact, PvP counterplay, PvM risk/reward, gold or item faucets/sinks, housing/storage impact, client compatibility, shard policy choices, and expected monitoring signals.
validations:
required: false
- type: textarea
id: testing-monitoring-rollback
attributes:
label: Testing / Monitoring / Rollback
description: |
Add focused tests, broad suites, manual verification, logs/metrics to monitor, backup/restore needs, rollback plan, feature disable plan, and post-publish checks.
validations:
required: false
- type: textarea
id: implementation-notes
attributes:
label: Implementation Notes / Repo Anchors
description: |
Add known classes, methods, data files, config files, tests, docs, or code anchors if known. Note whether Projects/Server core changes are required or whether UOContent/RUOContent can contain the work.
placeholder: |
Classes/methods:
Data/config files:
Tests:
Docs/runbook:
Core boundary:
validations:
required: false