I’ve been working on NPCs for years and created in the past a good system to identify and spawn the NPCs we needed. I avoided the system SOE used because it was mostly pretty bulky, opaque and complex.
Last week I had a conversation with Ziggy and Obique in Discord about the ability to scale NPCs. That means you spawn an NPC and upgrade/downgrade it by setting a new combat level. The attacks and stats should be scaled up/down too. Nevertheless with the current system it wouldn’t be wise to use it and would cause many flaws in the NPCs, like having a natural low level NPC being boosted to a high combat level but keeping their poor attacks and loot.
Therefore I started to think about it, and began working on creating new combat NPCs for our version, which gave me an idea on how I can adjust the whole NPC database and loot function to give us a new system that is easy to use. The lair feature will benefit a lot from it too!
Complete dynamic levels / difficulty and co
The NPC database will no longer store the information about
- difficulty (Normal, Elite, Boss)
- combat level
- NPC is invulnerable (grey), aggressive (red) or attackable (yellow)
This kind of information will be stored in the spawner itself. Plus there will be a minimum and maximum combat level value for every spawner. min = 70 and max = 80 will lead to a random combat level between those 2 stats unless both values are the exact same.
NPCs in the database can then be used more commonly across all planets since you only have to set another combat level in the spawner info and not create a whole new NPC entry in the NPC database anymore.
Planetary level ranges can be assigned a lot easier giving the planets more content and competition again.
Best thing is that we can add more difficulty options to heroics or instances for example. You team up with some friends and want to do the Corvette run, when entering the instance you could be asked if you want to run the “Normal” instance or the “Legendary” one. NPCs will have a much higher CL and of course better loot. This is just 1 example of many