Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
MythicMobs MythicMobs
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 140
    • Issues 140
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • MythicCraft
  • MythicMobsMythicMobs
  • Wiki
    • Mobs
  • Factions

Factions · Changes

Page history
Create Mobs/Factions authored Aug 11, 2020 by Jacob Epstein's avatar Jacob Epstein
Hide whitespace changes
Inline Side-by-side
Showing with 313 additions and 0 deletions
+313 -0
  • Mobs/Factions.md Mobs/Factions.md +313 -0
  • No files found.
Mobs/Factions.md 0 → 100644
View page @ 83cebf39
Customizing Mob AI
==================
MythicMobs provides the ability to program custom mob AI in your mobs
which allows for a huge amount of additional customization as to how
mobs attack, what targets they choose to attack, and other actions.
In the following sections I will provide some examples on how to
configure a couple common scenarios that you may want to use on your
server.
PLAYERS CAN BE APART OF MYTHICMOBS FACTIONS TO TAKE ADVANTAGE OF THE
CUSTOM AI WITH THE faction.(factionname) PERMISSION NODE!
AI Goals, Targets, and Factions
-------------------------------
- Custom AI generally requires two things configured in order to work.
You need **AI Goals**, which tell the mob how it should act, and you
need **AI Targets** which tells the mob how it should target things.
- **Factions** are used to separate mobs into groups and will be used
later for more advanced configurations.
- By default, most (not all) Minecraft mobs have some sort of internal
list of AI goals that tells them how their AI should work. As an
example, the Skeleton AI says that it should target players and that
it should use the arrow attack option when attacking said players.
- In order to re-program AI using MythicMobs we must first clear its
AI goals and targets and then add new objectives to these areas.
- Custom AI does not work with all mobs. Some mobs, such as the
Enderdragon, are hard-coded and cannot be changed. **Attempting to
change the AI on these may even crash your server, so be wary and
use test environments!**
<!-- -->
DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 arrowattack
AITargetSelectors:
- 0 clear
- 1 players
Options:
FollowRange: 10
MovementSpeed: 0.2
PreventOtherDrops: true
- This example shows how the Skeleton AI generally works for
attacking. (minus all the fluff, such as randomly walking around).
<!-- -->
* The **AIGoalSelectors** section tells the Skeleton Mob to use the **arrowattack** action when it is going about its day to day goals.
* The **AITargetSelectors** section tells the Skeleton Mob that it should look to target players to use the **arrowattack** action on.
* As you see **clear** is always first, which in this case wipes the mobs AI so you have a clean slate to work with. This is important otherwise your AI may not function the way you would expect.
* Now lets say we want the skeleton to attack other mobs instead and we want him to use a melee attack instead of a ranged attack. See below for how we accomplish this.
DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 otherfactionmonsters
Equipment:
- COS_WoodSword:0
Options:
FollowRange: 10
MovementSpeed: 0.2
PreventOtherDrops: true
- The skeleton AI now is programmed to attack other mobs, and any mobs
that attack it first. In addition, it will use the melee attack
instead of ranged attack.
<!-- -->
* The **AIGoalSelectors** section now has the **meleeattack** goal which says to attack using melee. It should be noted that you must equip the skeleton with a sword now so he can use the melee attack since you can't melee with a bow equipped (the skeletons default weapon) This would not be required however for a zombie.
* The **AITargetSelectors** section now has the **players** target removed so the skeleton will not actively engage players. Instead it has the **otherfactionmonsters** target, which tells it that it should attack any monsters that are not in its own faction (in this case Undead). There is also **hurtbytarget** selector with a priority of 1 which says that if any other entities attacks the skeleton first (such as a player) then it will retaliate. This target selector is a common one that should be set as a higher priority so that mobs don't end up being exploitable. Without this here, the player could kill the skeleton without it attacking back which generally is not wanted.
- For a list of all the target and goal selectors please see [Mob AI
Goals](Databases/Mobs/Aigoals)
<!-- -->
- In the next two sections I will provide some examples for AI
configuration for two common scenarios you may wish to implement on
your server.
Example 1: Guards attack nearby monsters
----------------------------------------
- In this scenario we want to setup some guards at the entrance to our
city which should repel monsters that wander too close. You could
use an Iron Golem for this function disguised as a villager, but
their AI harder to control and they have special knock-up attacks
that make it unfair for the mobs, so we're going to use MythicMobs'
Custom AI to accomplish the same thing in a better way.
- The first thing we need is a beefy guard mob to protect our town.
Lets create a skeleton disguised as a villager, and equip him with a
sword.
<!-- -->
SummonedGuard1:
Mobtype: skeleton
Display: '&Ea town guard'
Health: 500
Damage: 5
Equipment:
- COS_StoneSword:0
Options:
Disguise: villager
Despawn: true
FollowRange: 5
AlwaysShowName: false
MovementSpeed: 0.35
PreventOtherDrops: true
KnockbackResistance: 1
PreventMobKillDrops: true
- So if we tie this mob to a mob spawner at our gates, he's going to
go attack all of our players in the town so we need to make some
adjustments to make him friendly.
<!-- -->
SummonedGuard1:
Mobtype: skeleton
Display: '&Ea town guard'
Health: 500
Damage: 5
Equipment:
- COS_StoneSword:0
Faction: Guard
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 otherfactionmonsters
Options:
Disguise: villager
Despawn: true
FollowRange: 5
AlwaysShowName: false
MovementSpeed: 0.35
PreventOtherDrops: true
KnockbackResistance: 1
PreventMobKillDrops: true
- Now the mob will target other factions containing monsters besides
his own and will target anyone that hurts him (this will keep some
of our less ethical players from killing our guards for the hell of
it) He will also open any doors in his way to get to his target.
- So this is the first half of the problem. Next we need to ensure
that our monsters that are roaming outside our walls will attack
back against our guards.
- Below we will grab our Decaying Skeleton mob and configure him as
such.
<!-- -->
DecayingSkeleton:
Mobtype: skeleton
Display: '&aa decaying skeleton'
Health: 15
Damage: 1
Faction: Undead
AIGoalSelectors:
- 0 clear
- 1 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 players
Equipment:
- COS_RawHead:4
- COS_WoodSword:0
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.2
PreventOtherDrops: true
- Our decaying skeleton is now in the Undead faction (different then
the Guard faction) and so he will be attacked by the guard. Also, by
adding the **hurtbytarget** target selector, our decaying skeleton
will now fight back if engaged with a guard (and ultimately die)
- For any other mobs we have that spawn near the town, we would want
to add the the same AI Goals and Targets as configured above for the
skeleton making sure that the mob has a different faction then the
guard.
<!-- -->
- Now when we setup our mob spawners for our town guard at the gates,
he will repel monsters but ignore players (as long as they leave the
guard alone)
- Some additional settings that we would probably want to set in this
case are a short follow range for the guard (5 in this case) and a
short leash range for the mob spawner. This will ensure that the
guard doesn't go off on a rampage and kill all the monsters that we
want our players to be able to kill for experience and loots. We
also want to ensure that the guard has the **PreventMobKillDrops**
set to true so that his kills don't drop exp/loot for our players.
Example 2: Orcs and Goblins attack each other
---------------------------------------------
- So in our world we have two factions, the goblins and the orcs and
they don't like each other much. We have a battlefield setup where
they are at constant war except right now they are both using the
skeleton mob type with its default AI and they aren't doing much
fighting.
- We want to configure them using Mythic Mobs Custom AI so that they
fight each other when nearby in addition to any players that wander
onto the battlefield.
- Lets create an Orc mob and a Goblin mob.
<!-- -->
OrcCenturion:
Mobtype: villagezombie
Display: '&aan orc centurion'
Health: 50
Damage: 4
Faction: Orcs
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 specificfactionmonsters Goblin
- 3 players
Equipment:
- C_DeathfistSkullcap:4
- C_DeathfistTunic:3
- C_DeathfistLeggings:2
- C_DeathfistBoots:1
- COS_WoodSword:0
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.25
PreventOtherDrops: true
PreventItemPickup: true
KnockbackResistance: 0.25
PreventMobKillDrops: true
GoblinBattlemaster:
Mobtype: zombie
Display: '&aa goblin battlemaster'
Health: 80
Damage: 4
Faction: Goblin
AIGoalSelectors:
- 0 clear
- 1 opendoors
- 2 meleeattack
AITargetSelectors:
- 0 clear
- 1 hurtbytarget
- 2 specificfactionmonsters Orcs
- 3 players
Equipment:
- COS_BronzeHead:4
- COS_BronzeChest:3
- COS_BronzeLegs:2
- COS_BronzeFeet:1
- COS_WoodAxe:0
Skills:
- skill BashI ~onAttack >0 0.25
Options:
Despawn: true
FollowRange: 10
AlwaysShowName: false
MovementSpeed: 0.25
PreventOtherDrops: true
PreventItemPickup: true
KnockbackResistance: 0.4
PreventMobKillDrops: true
- So there are a few things we've configured here of note.
<!-- -->
* First we have set the orc mob on the **Orc Faction** and the Goblin mob on the **Goblin Faction**. This will logically separate the two mob types.
* Next we configure both of the mobs with the standard **clear, opendoors, and meleeattack** actions which is common for most melee type mobs.
* Lastly we clear our AI then setup three AI target selectors.
* First is the **hurtbytarget** selector which as mentioned before is a good fall back option so that mobs can not be exploited by other mobs or players that they will not retaliate against.
* Next is the **specifictargetfaction** selector with the opposing faction in it. This is set to priority 2 so the goblins and orcs will target each other first when they aren't already in combat
* Last is the **players** target selector which tells that mobs to attack players if there are no goblins/orcs nearby.
* Lastly remember to set the **PreventMobKillDrops** to true so that warring npc factions don't drop exp / loots for players that happen to wander by.
* If we have other goblin or orc mob types, we need only copy and paste these AI configurations into their mob setups and they should react similarly to the two mobs above.
Clone repository
  • Home
  • Changelogs
  • Premium Features
  • Commands and Permissions
  • FAQ / Common Issues
  • Mythic Add-ons
  • Compatible Plugins
  • API Information

Mobs

  • Overview
  • Types
  • Mob Options
  • Mob Levels
  • Mob Factions
  • Power Scaling
  • Damage Modifiers
  • Equipment
  • BossBar
  • Custom AI
  • Custom Kill Messages
  • Threat Tables
  • Immunity Tables
  • Extra: Disguises
  • Extra: MiniaturePets

Skills

  • Overview
  • Mechanics
  • Effects
  • Targeters
  • Triggers
  • Conditions
  • Placeholders
  • Variables

Items & Drops

  • Drops and Drop Tables
  • Attributes/Options

Spawning

  • Spawners
  • Random Spawns