zunath / SWLOR_NWN

Star Wars: Legends of the Old Republic server code, a persistent world for Neverwinter Nights
40 stars 98 forks source link

Revamp - DM Management Window #1152

Open zunath opened 3 years ago

zunath commented 3 years ago

Add a NUI window (or multiple windows) which is available to DM and Admins that allows the following:

  1. Copying of items
  2. Changing the time of day/night
  3. Toggling plot/immortal on objects
  4. Kill a target
  5. Rename an object (not PCs due to DB constraints)
  6. Revives a target
  7. Spawn gold
  8. Teleport to a waypoint of a specified name
  9. Manipulate local variables on an object
  10. Give RP XP
  11. Reset perk cooldowns
  12. Play visual effects
  13. Reset ability recast cooldowns
  14. Get/set faction standing
  15. Restart the server
  16. Teleport to a waypoint by tag
  17. Save/load area designs
  18. Save/load creature designs
  19. Any additional DMFI functionality which would be better served being inside a window.
  20. Give/take key items (only specific key items flagged for DMs)

All related chat commands should also be removed.

These windows should be available when the DM is logged in as a player.

Announcer348 commented 3 years ago

Requesting capability to also scale placeables and creatures (possibly including PCs) as with the /setscale command, but in smaller increments than full integers (I.E. 1.1, 1.2, rather than 1.0, 2.0, 3.0)

Announcer348 commented 3 years ago

Possibly the ability to change phenotypes/appearances on non-controlled targets as with the SetAppearance console command?

zunath commented 3 years ago

-> DM Tools for property system

zunath commented 2 years ago

Give DMs a tool to change their own names (but not players).

Be careful to account for players who have entered DM mode.

givemedeath commented 2 years ago

something like this for structure?

image

givemedeath commented 2 years ago

add editor for skins: GetItemInSlot(ITEM_SLOT_CRARMOR, oNPC)

zunath commented 2 years ago

In my head I saw this working as another set of static controls on the DM's screen. Something like this system where they have a set of widgets on the side of the screen: https://neverwintervault.org/project/nwnee/script/nui-spell-widget

Each of these widgets would have tooltips displaying what they are and open additional windows. In your example, there'd be a widget for Object, Area, Creature, Server Tools, etc. The big thing is making sure they don't take up much screen space.

In your set of tools, the only thing I'd change off the bat is to move SpawnGold to Creatures (the typical use case. I know placeables can hold gold too, but the DM can just drop it in the chest)

And to clarify some of the tools you had questions about:

Area Management would let the DM:

  1. Clone an area (we need to be real careful about transitions and such. Duplicating those could cause weird behavior. Maybe on clone we should clear any transitions, npcs, etc. We can discuss at a later point)
  2. Save the DM-spawned objects for the area they're in to the database. They could then search for designs that are currently saved and load them into the area. We would need to structure this in such a way that you could only have one design active at a time. I.E we don't want to overload the server by having a DM spam-spawn designs.

The goal of this tool is to set up areas in such a way that they can be used across resets. One of the big problems we have right now is that DMs will customize an area then the server restarts and they have to go back to set it up again. Having a one-click option would help them out a lot.

Creature Management would let the DM do the following:

  1. Save a creature to the database with a custom name. All their details would be saved along with them (probably can just serialize the thing tbh)
  2. Search through saved creatures by name
  3. Select & spawn the creature to a specific location (the Targeting service can help with this)

This tool would be helpful for saving NPCs often used by the DMs. They wouldn't need to set it up after every reset - basically a one click process to spawn it.

Creature management and Area management happen to be the highest priority items on my list (in that order), given DMFI and chat commands can fill the remaining gaps. If I had a choice, I'd suggest you do those first but it's up to you ultimately.

I would recommend staying away from property management and letting me do that one. There's a ton to it and some of it can be kind of tricky. I think the rest should be fair game though.

zunath commented 2 years ago

Another request: A tool to rename player characters permanently.

I'm honestly not sure this can be done - I doubt SetName will work. There might be an NWNX function for it. I'm getting a lot of name change requests - more than I thought - so it'd be nice to have a tool for it.

Mithreas commented 2 years ago

It looks like NWNX_Creature_SetOriginalName exists now, but requires the PC to relog to update. You can use the portal function to reconnect the PC to the server and update their name.

Valo56 commented 2 years ago

Request 1 - Voice Broadcast DMFI Voice Widget does not appear to be working. (Note, not the DMFI Voice Tool, the Voice Widget. I have no idea as to the Voice Tool's functionality.) My suggestion, assuming a simple fix of the DMFI Voice Widget is not feasible (I imagine fixing/maintaining someone else's code is more trouble than it's worth) is the following: -A voice command to let you target either a creature, a placeable, or if possible a spot on the ground. The voice command would be structured as follows

/v## [Text to broadcast] If you do not input any text, you assign or overwrite what that voice actor is.

Put another way, if I have two stormtroopers, 1 and 2, I can type /v1 and then click on stormtrooper 1, that stormtrooper is now assigned to v1. I can then type /v1 HALT! and Stormtrooper 1 will say HALT! I can do the same with Stormtrooper 2 and /v2.

Request 2 - Transitions Contrition had a handy little placeable you could place down, then click on it and it'd open a conversation with 4 options for DM's (players did not get any options, more on that later). 1-Use Transition 2-Assign Tag 3-Assign Destination 4-Lock/Unlock

Relatively simple, you assign the ID of the origin, assign the ID of where it's going, and can lock or unlock it to stop players from using it or allow them through.

Request 3 - Name and Description adjuster In addition to name adjuster, a description adjuster, and maybe some way of adjusting whether or not a placeable is static or interactable(/plot? is that what does it?) would be nice.

Request 4 - Some way of manually inputting an NPC's max HP rather than adjusting CON, assuming that isn't already a thing.

Valo56 commented 2 years ago

Request 5 - The faction assigned to NPC's (Commoner, Merchant, Guard, Hostile, etc.) should be visible when DM's examine them.

Valo56 commented 2 years ago

Request 6 - Eavesdropper Tool Allow DM's to eavesdrop on targeted characters (mainly PC's but I could see utility in letting it target anyone, if two DM's are working together or players have a henchman or something like that), which will display everything they say.

Valo56 commented 2 years ago

Music Tool Opens up a menu including our custom music to change the music currently being placed. Also would be nice if battle music could be adjusted so you could have more tense music leading up to a DM encounter followed by your choice of music automatically playing once combat starts.

Valo56 commented 2 years ago

Randomized NPC's A tool to spawn in NPC's of a given race and gender (or random race and/or random gender) with random civilian outfits equipped. Bonus points if there's randomly generated names.

zunath commented 2 years ago

Bug Report When examining players as a DM, there is no readout of their skills, stats, etc. DM's are unable to see player stats at all, and when examining their character sheet we see the default NWN sheet.

zunath commented 2 years ago

Bug Report DM's are unable to see the rolls and checks being made by players and NPC's in space combat.

zunath commented 2 years ago

Bug Report DM's have no apparent way of adjusting the stats, seeing the health/shields of ships, or otherwise of space based NPC's. The same goes to a lesser extent to ground based NPC's.

Bug Report Being unable to assess the shields, force, hull, stamina, etc., of NPC's and ships makes things a little difficult. I suggest a tool that would pop up a little NUI window like how players have their HP/FP/SP at the bottom right, letting you track these these for players and NPC's you choose to keep track of, if possible.

zunath commented 2 years ago

Bug Report Suggested DM tool - Allow DM's to adjust the wings/backpacks of NPC's, assuming this isn't already a thing and I just haven't seen it. While it may not seem important there's a lot of utility in being able to place the flag backpack or some of the other ones on NPC's. This can already be done to some extent via visualeffects, but this doesn't work for spawning NPC duplicates as far as I know as the visualeffects don't carry over.

Valo56 commented 2 years ago

NPC/PC Cloner Basically copy and paste. Yes, DMFI Custom Encounters already exists for this, but it's slow both in the thick of things and requires a lot of set-up. Bonus points if we can copy more than one NPC at a time to spawn groups in quickly.

zunath commented 2 years ago

DM: We need /setscale again to adjust item sizes

zunath commented 2 years ago

Originally posted by @Valo56 in #1598

The creature manager tool is a HUGE help. Many thanks!

Something else that would be amazing to see is an in-game tool to create items.

Ideally, it would work like follows: -Type /itemmanager -NUI window pops up. Looks like the existing Creature Manager NUI window. Instead of Add New Creature, the Add New Template button brings up a new NUI window.

New NUI window has the following fields: -Item Name -Item Tag -Item Description -Item Properties (lets you select and apply any valid toolset options, choosing base properties and property value) -Item Appearance (select from dropdowns)

-Also has an "Adjust Template" button letting you change the item appearance.

-Maybe a "Copy Template" button letting you copy an item to the Item Manager.

This would mean us getting through a lot of our tickets will be an absolute breeze, not to mention dropping special, custom loot and consumable items on events will be a lot more doable. Bonus points if it can copy a container item like a backpack and everything inside it so we can have easy to spawn loot bags.

Its functionality could maybe also be expanded to let it and the creature manager interact? Specifically letting us adjust creature skins on NPC's before they're spawned, letting us balance and create entirely new NPC's on the fly without ever needing server updates for this.