About this mod
Allows server owners to create custom, condition-based item drops for a more expansive and dynamic loot experience
- Requirements
- Permissions and credits
- Changelogs
Meant for use in:
- Singleplayer world
- Singleplayer world with Multiplayer enabled (Non-dedicated Server)
- Dedicated Server - only the server needs the mod installed
>>> DOES NOT MODIFY ANY DATA TABLES <<<
>>> THIS MEANS IT IS COMPATIBLE WITH ANY MOD THAT DOES <<<
IMPORTANT INFORMATION
How Item Drops Are Processed
- A player kills a wild Pal / NPC;
- OR a Pal belonging to a player's party kills a wild Pal / NPC;
- OR a wild Pal / NPC dies to Poison, Burn, or Falling (fall damage) and there exists a player that last attacked it
Item drops that pass the chance and requirement checks get added to the killer's inventory. If their inventory is full, it gets dropped at their feet.
ALL drops registered to a Pal (including Global and Element-based drops) get processed - meaning it doesn't stop at the first successful drop.
JSON Files and Defining Drops
Files in "/LogicMods/CustomItemDrops-data/"
- SpecificDrops.json - Used to specify a list of item drops for a specific Pal
- GroupDrops.json - Used to specify item drops for a list of Pals
- ElementDrops.json - Used to specify a list of item drops for a specific Element type
- GlobalDrops.json - Used to specify item drops that apply for ALL Pals
These properties MUST have values:
- ItemID - ID of the item to be dropped
- DropChance - Percent chance to drop the item (value of 12.5 = 12.5% chance to drop)
At least one of these must have a set value greater than zero:
- Amount (default: 0) - Amount of the item to be dropped; If value is greater than zero, AmountMin and AmountMax are ignored
- AmountMin(default: 0) - Minimum amount of the item to be dropped; If AmountMax is not defined, this gets treated as the Amount
- AmountMax(default: 0) - Maximum amount of the item to be dropped; If AmountMin is not defined, this gets treated as the Amount
Possible requirements - none of these must have values, and not all of them need to be defined for a drop:
- IsAlpha (default: false) - whether the victim needs to have been an Alpha
- IsTowerBoss (default: false) - whether the victim needs to have been a Tower Boss (ex: Zoe & Grizzbolt)
- IsRaidBoss (default: false)- whether the victim needs to have been a Raid Boss (ex: Bellanoir Libero)
- IsRaidBossServant (default: false)- whether the victim needs to have been a Raid Boss servant (ex: spawn by raid boss)
- IsRandomDungeonBoss (default: false)- whether the victim needs to have been a Random Dungeon Boss (ex: found in a random dungeon)
- IsFieldBoss (default: false)- whether the victim needs to have been a Field Boss (ex: Chillet near spawn), which are bosses found in the normal world
- IsSealedRealmBoss (default: false)- whether the victim needs to have been a Sealed Realm Boss (ex: Penking), which are bosses found in Sealed Realms
- IsPredator (default: false)- whether the victim needs to have been a Predator Boss (ex: any random Predator)
- IsLucky (default: false) - whether the victim needs to have the Lucky passive
- IsMale (default: false) - whether the victim needs to have been Male
- IsFemale (default: false) - whether the victim needs to have been Female (if IsFemale and IsMale are the same, they are ignored)
- IsDay (default: false) - whether the victim was killed during the Day
- IsNight (default: false) - whether the victim was killed at Night
- KilledBy (default: None) - the Tribe ID of the Pal in the player's party needed to deal the final attack OR kills attributed to Poison or Burn or Falling
- InParty (default: [None]) - an array of Tribe IDs of Pal(s) in the player's party needed for the item to drop (is now a list instead of a single value)
- CaughtMin (default: 0) - the minimum number of times the victim's species was caught by the player
- CaughtMax (default: 0) - the maximum number of times the victim's species was caught by the player
- CaughtRange (default: [0, 0]) - an array of min and max of the number of times the victim's species was caught by the player
- ButcheredMin (default: 0) - the minimum number of times the victim's species was butchered by the player
- ButcheredMax (default: 0) - the maximum number of times the victim's species was butchered by the player
- ButcheredRange (default: [0, 0]) - an array of min and max of the number of times the victim's species was butchered by the player
- PalLevelMin (default: 0) - the minimum level of the victim
- PalLevelMax (default: 0) - the maximum level of the victim
- PalLevelRange (default: [0, 0]) - an array of min and max level of the victim
- PlayerLevelMin (default: 0) - the minimum level of the player
- PlayerLevelMax (default: 0) - the maximum level of the player
- PlayerLevelRange (default: [0, 0]) - an array of min and max level of the player
- RelicsOwnedMin (default: 0) - the minimum number of Lifmunk Effigies owned by the player
- RelicsOwnedMax (default: 0) - the maximum number of Lifmunk Effigies owned by the player
- RelicsOwnedRange (default: [0, 0]) - an array of min and max of the number of Lifmunk Effigies owned by the player
- WaypointsUnlockedMin (default: 0) - the minimum number of Waypoints unlocked by the player
- WaypointsUnlockedMax (default: 0) - the maximum number of Waypoints unlocked by the player
- WaypointsUnlockedRange (default: [0, 0]) - an array of min and max of the number of Waypoints unlocked by the player
- PaldeckPalsUnlockedMin (default: 0) - the minimum number of unique Pal species caught by the player
- PaldeckPalsUnlockedMax (default: 0) - the maximum number of unique Pal species caught by the player
- PaldeckPalsUnlockedRange (default: [0, 0]) - an array of min and max of the number of unique Pal species caught by the player
- DungeonsClearedMin (default: 0) - the minimum number of Dungeons cleared by the player
- DungeonsClearedMax (default: 0) - the maximum number of Dungeons cleared by the player
- DungeonsClearedRange (default: [0, 0]) - an array of min and max of the number of Dungeons cleared by the player
- UniqueTowersClearedMin (default: 0) - the minimum number of individual Tower Bosses defeated for the first time by the player
- UniqueTowersClearedMax (default: 0) - the maximum number of individual Tower Bosses defeated for the first time by the player
- UniqueTowersClearedRange (default: [0, 0]) - an array of min and max of the number of individual Tower Bosses defeated for the first time by the player
- TotalTowersClearedMin (default: 0) - the minimum number of total Tower Bosses defeated by the player
- TotalTowersClearedMax (default: 0) - the maximum number of total Tower Bosses defeated by the player
- TotalTowersClearedRange (default: [0, 0]) - an array of min and max of the total number of Tower Bosses defeated by the player
- OilrigClearsMin (default: 0) - the minimum number of total clears of the Oilrig by the player
- OilrigClearsMax (default: 0) - the maximum number of total clears of the Oilrig by the player
- OilrigClearsRange (default: [0, 0]) - an array of min and max of the number of total clears of the Oilrig by the player
- AreasDiscoveredMin (default: 0) - the minimum number of areas discovered by the player
- AreasDiscoveredMax (default: 0) - the maximum number of areas discovered by the player
- AreasDiscoveredRange (default: [0, 0]) - an array of min and max of the number of areas discovered by the player
- UniqueRaidsClearedMin (default: 0) - the minimum number of individual Raid Bosses defeated for the first time by the player
- UniqueRaidsClearedMax (default: 0) - the maximum number of [individual Raid Bosses defeated for the first time by the player
- UniqueRaidsClearedRange (default: [0, 0]) - an array of min and max of the number of individual Raid Bosses defeated for the first time by the player
- TotalRaidsClearedMin (default: 0) - the minimum number of total Raid Bosses defeated by the player
- TotalRaidsClearedMax (default: 0) - the maximum number of total Raid Bosses defeated by the player
- TotalRaidsClearedRange (default: [0, 0]) - an array of min and max of the number of total Raid Bosses defeated by the player
- TotalSealedRealmsClearedMin (default: 0) - the minimum number of total Sealed Realm Bosses defeated by the player
- TotalSealedRealmsClearedMax (default: 0) - the maximum number of total Sealed Realm Bosses defeated by the player
- TotalSealedRealmsClearedRange (default: [0, 0]) - an array of min and max of the number of total Sealed Realm Bosses defeated by the player
Useful links for getting Pal Tribe IDs and Item IDs
Examples for each type will be provided in the mod download, but here is also the example structure for each file
SpecificDrop Example
{
"PinkCat": [
{
"ItemID": "Fiber",
"DropChance": 12,
"Amount": 10,
"Requirements": {
"IsLucky": true,
"IsDay": true
}
}
]
}
GroupDrop Example
{
"drops": [
{
"Drop": {
"ItemID": "Money",
"DropChance": 32.5,
"AmountMin": 21
"Requirements": {
"IsAlpha": true,
"IsMale": true
}
},
"Pals": ["Horus", "Kelpie", "LavaGirl"]
}
]
}
ElementDrop Example
{
"Fire": [
{
"ItemID": "Gunpowder",
"DropChance": 23,
"AmountMax": 12,
"Requirements": {
"IsAlpha": true,
"KilledBy": "Poison"
}
}
]
}
GlobalDrop Example
{
"drops": [
{
"ItemID": "Money",
"DropChance": 21,
"AmountMin": 69,
"AmountMax": 420,
"Requirements": {
"IsTowerBoss": true
}
}
]
}
Still need support? Ask in my Discord server.
Check out my other mods: