feat: Enhance minigame effects and UI interactions

- Implemented LeaveMinigameQueueEffect to handle player removal from queues and runtime.
- Added OpenMinigameQueueUIEffect to manage the opening of the minigame queue UI.
- Introduced StartPlayerTimerEffect and StopPlayerTimerEffect for managing player timers and scoring.
- Enhanced PlaceBlocksEffect with options for filling volumes and hollow placements.
- Updated SpawnItemEffect to fix codec handling for item IDs.
- Added MountPlayerEffect and DismountPlayerEffect for player interactions with NPCs.
- Improved StartQueuedMinigameEffect to check player counts before starting games.
- Added localization entries for new effects and UI elements.
- Updated manifest to include HyUI as a dependency.
This commit is contained in:
2026-06-11 17:17:54 -07:00
parent 67e70a71bd
commit 49bbd2b871
58 changed files with 3664 additions and 37 deletions
@@ -215,3 +215,102 @@ customUI.triggerVolumeEffectEditor.effectType.StartQueuedMinigame = Start Queued
customUI.triggerVolumeEffectEditor.effectType.SpawnItem = Spawn Item
customUI.triggerVolumeEffectEditor.effectType.SpawnNpc = Spawn NPC
customUI.triggerVolumeEffectEditor.effectType.MountPlayer = Mount Player
customUI.triggerVolumeEffectEditor.effectType.DismountPlayer = Dismount Player
customUI.triggerVolumeEffectEditor.effectType.OpenMinigameQueueUI = Open Queue UI
customUI.triggerVolumeEffectEditor.effectType.PlaceBlocks = Place Blocks
customUI.triggerVolumeEffectEditor.effectType.SetPlayerLoadout = Set Player Loadout
customUI.triggerVolumeEffectEditor.effectType.StartPlayerTimer = Start Player Timer
customUI.triggerVolumeEffectEditor.effectType.StopPlayerTimer = Stop Player Timer
customUI.triggerVolumeEffectEditor.effectType.StartMinigame = Start Minigame
customUI.triggerVolumeEffectEditor.effectType.EndMinigame = End Minigame
customUI.triggerVolumeEffectEditor.effectType.ResetMinigame = Reset Minigame
customUI.triggerVolumeEffectEditor.effectType.SetMinigamePhase = Set Phase
customUI.triggerVolumeEffectEditor.effectType.ResetScores = Reset Scores
customUI.triggerVolumeEffectEditor.effectType.ModifyPlayerScore = Modify Player Score
customUI.triggerVolumeEffectEditor.effectType.ModifyTeamScore = Modify Team Score
customUI.triggerVolumeEffectEditor.effectType.ModifyCounter = Modify Counter
customUI.triggerVolumeEffectEditor.effectType.ModifyPlayerLives = Modify Player Lives
customUI.triggerVolumeEffectEditor.effectType.SetPlayerStatus = Set Player Status
customUI.triggerVolumeEffectEditor.conditionType.MinigamePhase = Minigame Phase
customUI.triggerVolumeEffectEditor.conditionType.PlayerInMinigame = Player In Minigame
customUI.triggerVolumeEffectEditor.conditionType.PlayerStatus = Player Status
customUI.triggerVolumeEffectEditor.conditionType.PlayerScore = Player Score
customUI.triggerVolumeEffectEditor.conditionType.TeamScore = Team Score
customUI.triggerVolumeEffectEditor.conditionType.Counter = Counter
customUI.triggerVolumeEffectEditor.field.common.NpcId = NPC UUID
customUI.triggerVolumeEffectEditor.field.common.NpcId.tooltip = Optional exact NPC UUID to target. Leave empty to use the nearest matching NPC.
customUI.triggerVolumeEffectEditor.field.common.NpcRoleId = NPC Role
customUI.triggerVolumeEffectEditor.field.common.NpcRoleId.tooltip = Optional NPC role filter. Leave empty to match any NPC.
customUI.triggerVolumeEffectEditor.field.common.RemoveNpc = Remove NPC After Dismount
customUI.triggerVolumeEffectEditor.field.common.RemoveNpc.tooltip = If true, the NPC is removed from the world after the player dismounts.
customUI.triggerVolumeEffectEditor.field.common.BalanceTeams = Balance Teams
customUI.triggerVolumeEffectEditor.field.common.BalanceTeams.tooltip = If true, evenly distribute all runtime players across available teams instead of assigning a specific team.
customUI.triggerVolumeEffectEditor.field.common.PreventManualDismount = Lock Mount
customUI.triggerVolumeEffectEditor.field.common.PreventManualDismount.tooltip = If true, the player cannot manually dismount.
customUI.triggerVolumeEffectEditor.field.common.LoadoutId = Loadout
customUI.triggerVolumeEffectEditor.field.common.LoadoutId.tooltip = The loadout id from the minigame definition to apply to the player.
customUI.triggerVolumeEffectEditor.field.common.BlockId = Block
customUI.triggerVolumeEffectEditor.field.common.BlockId.tooltip = The block type asset id to place.
customUI.triggerVolumeEffectEditor.field.common.X1 = X1
customUI.triggerVolumeEffectEditor.field.common.X1.tooltip = First corner X coordinate.
customUI.triggerVolumeEffectEditor.field.common.Y1 = Y1
customUI.triggerVolumeEffectEditor.field.common.Y1.tooltip = First corner Y coordinate.
customUI.triggerVolumeEffectEditor.field.common.Z1 = Z1
customUI.triggerVolumeEffectEditor.field.common.Z1.tooltip = First corner Z coordinate.
customUI.triggerVolumeEffectEditor.field.common.X2 = X2
customUI.triggerVolumeEffectEditor.field.common.X2.tooltip = Second corner X coordinate.
customUI.triggerVolumeEffectEditor.field.common.Y2 = Y2
customUI.triggerVolumeEffectEditor.field.common.Y2.tooltip = Second corner Y coordinate.
customUI.triggerVolumeEffectEditor.field.common.Z2 = Z2
customUI.triggerVolumeEffectEditor.field.common.Z2.tooltip = Second corner Z coordinate.
customUI.triggerVolumeEffectEditor.field.common.MaxBlocks = Max Blocks
customUI.triggerVolumeEffectEditor.field.common.MaxBlocks.tooltip = Maximum block count allowed for this operation. Defaults to 32768. Increase with care.
customUI.triggerVolumeEffectEditor.field.common.FillVolume = Fill Volume Shape
customUI.triggerVolumeEffectEditor.field.common.FillVolume.tooltip = If true, use this trigger volume's bounding box as the fill region instead of the X1/Y1/Z1 - X2/Y2/Z2 coordinates.
customUI.triggerVolumeEffectEditor.field.common.Hollow = Hollow
customUI.triggerVolumeEffectEditor.field.common.Hollow.tooltip = If true, only place blocks on the outer shell of the region. Interior blocks are left unchanged.
customUI.triggerVolumeEffectEditor.field.common.Operation.option.BEST = Best
customUI.triggerVolumeEffectEditor.field.MountPlayer.PreventManualDismount.tooltip = Prevents the player from manually dismounting while this component is active.
customUI.triggerVolumeEffectEditor.field.AssignTeam.BalanceTeams.tooltip = Distribute all runtime players evenly across teams. TeamId is ignored when this is enabled.
customUI.triggerVolumeEffectEditor.field.DismountPlayer.PlayerId.tooltip = Optional player UUID. Leave empty to dismount the triggering player.
customUI.triggerVolumeEffectEditor.field.DismountPlayer.NpcRoleId.tooltip = Optional NPC role filter. Only dismounts if the player is mounted on an NPC with this role.
customUI.triggerVolumeEffectEditor.field.DismountPlayer.RemoveNpc.tooltip = Remove the NPC from the world after the player is dismounted.
customUI.triggerVolumeEffectEditor.field.OpenMinigameQueueUI.MinigameId.tooltip = Minigame to show. Leave empty to open the global game browser.
customUI.triggerVolumeEffectEditor.field.OpenMinigameQueueUI.MapId.tooltip = Specific map to show as a compact join popup. Requires MinigameId to also be set.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.BlockId.tooltip = The block type asset id to place throughout the region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.X1.tooltip = X coordinate of the first corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.Y1.tooltip = Y coordinate of the first corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.Z1.tooltip = Z coordinate of the first corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.X2.tooltip = X coordinate of the second corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.Y2.tooltip = Y coordinate of the second corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.Z2.tooltip = Z coordinate of the second corner of the fill region.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.MaxBlocks.tooltip = Maximum number of blocks this effect is allowed to place. Protects against oversized regions.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.FillVolume.tooltip = Use this trigger volume's own bounding box as the fill region. Overrides the X1/Y1/Z1 - X2/Y2/Z2 fields.
customUI.triggerVolumeEffectEditor.field.PlaceBlocks.Hollow.tooltip = Only place blocks on the outer faces of the region. Interior is left untouched.
customUI.triggerVolumeEffectEditor.field.SetPlayerLoadout.PlayerId.tooltip = Optional player UUID. Leave empty to apply the loadout to the triggering player.
customUI.triggerVolumeEffectEditor.field.SetPlayerLoadout.LoadoutId.tooltip = The loadout id defined in the minigame definition to give the player.
customUI.triggerVolumeEffectEditor.field.StartPlayerTimer.PlayerId.tooltip = Optional player UUID. Leave empty to start the timer for the triggering player.
customUI.triggerVolumeEffectEditor.field.StopPlayerTimer.PlayerId.tooltip = Optional player UUID. Leave empty to stop the timer for the triggering player.
customUI.triggerVolumeEffectEditor.field.StopPlayerTimer.Operation.tooltip = How to apply the elapsed time to the player's score. SET replaces, ADD accumulates, BEST keeps the lowest non-zero time.
# /triggervolume clone
server.commands.triggervolume.clone.desc = Clone a trigger volume and place it at your position
server.commands.triggervolume.clone.name.desc = Name of the trigger volume to clone
server.commands.triggervolume.clone.newName.desc = Optional name for the clone (defaults to <name>_Copy)
server.commands.triggervolume.clone.updateTags.desc = Comma-separated tag overrides applied to the clone, e.g. MinigameId=Fishing,MapId=Cold
server.commands.triggervolume.clone.notFound = No trigger volume found with name '{name}'
server.commands.triggervolume.clone.success = Cloned '{source}' to '{name}' at your position
# /triggervolume clonegroup
server.commands.triggervolume.clonegroup.desc = Clone a trigger volume group, renaming member volumes via find/replace
server.commands.triggervolume.clonegroup.groupName.desc = Name of the group to clone
server.commands.triggervolume.clonegroup.newGroupName.desc = Name for the new group
server.commands.triggervolume.clonegroup.find.desc = Phrase to replace in member volume names
server.commands.triggervolume.clonegroup.replace.desc = Replacement phrase for member volume names
server.commands.triggervolume.clonegroup.notFound = No trigger volume group found with name '{name}'
server.commands.triggervolume.clonegroup.alreadyExists = A trigger volume group already exists with name '{name}'
server.commands.triggervolume.clonegroup.empty = Group '{name}' has no member volumes
server.commands.triggervolume.clonegroup.success = Cloned group '{source}' to '{name}' with {count} volumes
+1 -1
View File
@@ -11,7 +11,7 @@
"Website": "https://kewwbec.net",
"ServerVersion": "^0.5.3",
"Dependencies": {
"Ellie:HyUI": "*"
},
"OptionalDependencies": {