Project MMO: Iron's Spellbooks Compat

Quick rating

Community listing page, reviews here may not be monitored by the author.

Project MMO: Iron's Spellbooks Compat

By SilvertideOwner

No reviews yet

Adds compatability between Project MMO and Iron's Spells and Spellbooks.

Fantasy
Spells & Wands
Player Leveling
Mod Addon
Mod Loaders
Forge
NeoForge
Minecraft

Community voices

Reviews

List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Show per page
10
25
50
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Where It Runs
Client and Server

Must be installed on both the client and the server.

About

Project Details

Type
Mod
License
Creative Commons Attribution 4.0 International
Latest Version
pmmo_irons_spellbooks_compat-1.21.1-1.0.4

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

This mod requires Project MMO and Iron's Spells and Spellbooks for 1.20.1

About


This compatability mod allows you to add skill requirements to spells using datapacks. If a player doesn't meet the requirements then they can't cast the spell. It allows you to specify requirements on a per spell level basis as well. These requirements can be configured to only apply when casting from scrolls, spellbooks, and/or swords. You can also make it so these requirements prevent players from inscribing the spell into their spellbook entirely.

Additionally there is a config that allows you to award xp to a player when their spell heals another player. This enables healers/priest archetypes to actually be able to level a skill while supporting other players.

Guide


The easiest way to start is to load into the world in question and run the command:

/pmmo_irons_compat genSpellData

I know, snake case and camel case in one command, provocative. This will generate a datapack with defaults for every spell that is currently enabled in Iron's Spells and Spellbooks. You can modify this datapack and then delete the JSON files for spells that you did not configure. You can run this command at any time to repopulate the list of spells and it won't affect the JSON files you already have in there.

After running the command and generating the datapack I modified the fireball.json file to look like this:

{
  "requirements": {
    "1": {},
    "2": { "magic":  5}
  },
  "default_requirements": {
    "magic": 10,
    "charisma": 2
  },
  "sources": [
    "scroll",
    "spellbook",
    "sword",
    "inscribe"
  ],
  "replace": true
}

The "default_requirements" key will add a requirement to all fireball spell levels. In this case all fireball spell levels will require a magic of level 10 and a charisma of level 2 to cast.

The "requirements" section allows you to set requirements for specific spell levels. In this json the level 1 fireball spell now has no requirement to cast. This will override "default_requirements" for that specific spell level. The level 2 fireball spell has been configured to require level 5 magic to cast. Every other level of fireball would require 10 magic and 2 charisma to cast.

The "sources" section allows you to specify when to apply these requirements and when not to. Right now this would restrict casting fireball spells from scrolls, spellbooks, and swords. It would also not allow you to inscribe the fireball spell into a spellbook unless you meet the requirements. If you would like any spell to be castable from a scroll for example, you could remove "scroll" from the "sources" list and it would no longer be restricted.

The "replace" is there to solve datapack disputes. If there are multiple datapacks with requirements applied to a spell, say fireball, then the datapack with "replace": true will overwrite any that have it set to false. If there are multiple datapacks with "replace": true then it will use whichever was the last loaded datapack.

None of these are required; if you only want to add a requirement to a specific level of a spell then don't include "default_requirements" at all. If you want every spell to have the same requirement, remove "requirements" and only use "default_requirements". If you leave off "sources" then the requirements wouldn't apply to anything. You could just delete the JSON at that point.

FAQ


I will not backport this or port it to fabric. I just don't have the time and I will only be playing on 1.20.1+ going forward. You are welcome to do so though!

You can use this mod in any modpacks, but you cannot monetize it in any way or post it to another minecraft site.

Huge thanks to Caltinor / Project MMO team for their constant help and access to the project source code. Also thanks to the Iron's Spells and Spellbooks team for allowing me to merge a few PR's to emit events so I didn't have to use any mixins to make this work.

 

This mod requires Project MMO and Iron's Spells and Spellbooks for 1.20.1

About


This compatability mod allows you to add skill requirements to spells using datapacks. If a player doesn't meet the requirements then they can't cast the spell. It allows you to specify requirements on a per spell level basis as well. These requirements can be configured to only apply when casting from scrolls, spellbooks, and/or swords. You can also make it so these requirements prevent players from inscribing the spell into their spellbook entirely.

Additionally there is a config that allows you to award xp to a player when their spell heals another player. This enables healers/priest archetypes to actually be able to level a skill while supporting other players.

 

Guide


The easiest way to start is to load into the world in question and run the command:

/pmmo_irons_compat genSpellData

I know, snake case and camel case in one command, provocative. This will generate a datapack with defaults for every spell that is currently enabled in Iron's Spells and Spellbooks. You can modify this datapack and then delete the JSON files for spells that you did not configure. You can run this command at any time to repopulate the list of spells and it won't affect the JSON files you already have in there.

After running the command and generating the datapack I modified the fireball.json file to look like this:

{
  "requirements": {
    "1": {},
    "2": { "magic":  5}
  },
  "default_requirements": {
    "magic": 10,
    "charisma": 2
  },
  "sources": [
    "scroll",
    "spellbook",
    "sword",
    "inscribe"
  ],
  "replace": true
}

 

The "default_requirements" key will add a requirement to all fireball spell levels. In this case all fireball spell levels will require a magic of level 10 and a charisma of level 2 to cast.

The "requirements" section allows you to set requirements for specific spell levels. In this json the level 1 fireball spell now has no requirement to cast. This will override "default_requirements" for that specific spell level. The level 2 fireball spell has been configured to require level 5 magic to cast. Every other level of fireball would require 10 magic and 2 charisma to cast.

The "sources" section allows you to specify when to apply these requirements and when not to. Right now this would restrict casting fireball spells from scrolls, spellbooks, and swords. It would also not allow you to inscribe the fireball spell into a spellbook unless you meet the requirements. If you would like any spell to be castable from a scroll for example, you could remove "scroll" from the "sources" list and it would no longer be restricted.

The "replace" is there to solve datapack disputes. If there are multiple datapacks with requirements applied to a spell, say fireball, then the datapack with "replace": true will overwrite any that have it set to false. If there are multiple datapacks with "replace": true then it will use whichever was the last loaded datapack.

None of these are required; if you only want to add a requirement to a specific level of a spell then don't include "default_requirements" at all. If you want every spell to have the same requirement, remove "requirements" and only use "default_requirements". If you leave off "sources" then the requirements wouldn't apply to anything. You could just delete the JSON at that point.

 

FAQ


I will not backport this or port it to fabric. I just don't have the time and I will only be playing on 1.20.1+ going forward. You are welcome to do so though!

You can use this mod in any modpacks, but you cannot monetize it in any way or post it to another minecraft site.

 

Huge thanks to Caltinor / Project MMO team for their constant help and access to the project source code. Also thanks to the Iron's Spells and Spellbooks team for allowing me to merge a few PR's to emit events so I didn't have to use any mixins to make this work.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~68,000
Total Downloads
CurseForge
~63,000
Modrinth
~5,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works