Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hi. I need help with changing vanilla minecraft default recipes and disabling items from vanilla minecraft.

I want to change in my mod entire logic of vanilla game and make custom progress system based on players progress in my mod.
Disabling item is for unlocking them after player get progress points something like in sevtech ages.

No code for now just item registers but i cant find any option to change registry with vanilla items and recipes without changing game files it self

1 hour ago, _KS_ said:

Hi. I need help with changing vanilla minecraft default recipes and disabling items from vanilla minecraft.

Replace the recipe JSONs by supplying ones with a similar name. If you want to make it such that recipes can't be crafted until a certain point, it is much simpler to create a new block that functions the same as a crafting workbench but checks the progress. You can then disable any vanilla items by making an uncraftable recipe. If you need to change how non-JSONable recipes work, there are events for those (`PotionBrewEvent$Pre`, `AnvilUpdateEvent`, etc.).

You should always avoid touching and reregistering registry objects or modifying vanilla methods as you would most likely break compatibility with any other mod. The best way is just to modify the JSONs when applicable.

  • Author
1 hour ago, ChampionAsh5357 said:

Replace the recipe JSONs by supplying ones with a similar name. If you want to make it such that recipes can't be crafted until a certain point, it is much simpler to create a new block that functions the same as a crafting workbench but checks the progress. You can then disable any vanilla items by making an uncraftable recipe. If you need to change how non-JSONable recipes work, there are events for those (`PotionBrewEvent$Pre`, `AnvilUpdateEvent`, etc.).

You should always avoid touching and reregistering registry objects or modifying vanilla methods as you would most likely break compatibility with any other mod. The best way is just to modify the JSONs when applicable.

Yes i know about problems with touching registry objects but i dont want to modify any of game file in assets because after uninstaling my mod this can generate problems.
About crafting table and any of blocks like anvil, etc. i made my own versions in my mod just for this purpose

I'm 100% sure i can change registry objects because i making mod to be incompatible with any other mod that adding any machines or upgrades to vanilla crafting methods

Edited by _KS_

1 hour ago, _KS_ said:

Yes i know about problems with touching registry objects but i dont want to modify any of game file in assets because after uninstaling my mod this can generate problems.

You wouldn't be modifying the game assets though? Additionally, if you want to make a mod that's backwards compatible with vanilla, I would suggest a datapack.

1 hour ago, _KS_ said:

I'm 100% sure i can change registry objects because i making mod to be incompatible with any other mod that adding any machines or upgrades to vanilla crafting methods

Sure, but I would not explain how to do it since nearly any instance of registry replacement will break the game because of all the static storages of vanilla registry objects which in most instances would cause the game to crash in some capacity. Hence, I suggested the solution above as an alternative. It would also allow you to have more compatibility with other mods if you provide an open API or create an addon that supports the mod even if you do not wish to support it.

  • Author
52 minutes ago, ChampionAsh5357 said:

You wouldn't be modifying the game assets though? Additionally, if you want to make a mod that's backwards compatible with vanilla, I would suggest a datapack.

Sure, but I would not explain how to do it since nearly any instance of registry replacement will break the game because of all the static storages of vanilla registry objects which in most instances would cause the game to crash in some capacity. Hence, I suggested the solution above as an alternative. It would also allow you to have more compatibility with other mods if you provide an open API or create an addon that supports the mod even if you do not wish to support it.

Ok if i good understand what u telling there.
The best idea cause of minecraft static storage is to make custom crafting table, furnace etc. to just track player progress in game.
But what with disabling items to make custom mining progress or better is to go around this and make something like this custom crafting blocks

3 hours ago, _KS_ said:

But what with disabling items to make custom mining progress or better is to go around this and make something like this custom crafting blocks

You can override any JSON, so loot tables and recipes can just be modified to handle that. You can even add a custom condition for loot tables that take in the player context such that you can check your player's progress before dropping that loot.

  • Author
14 hours ago, ChampionAsh5357 said:

You can override any JSON, so loot tables and recipes can just be modified to handle that. You can even add a custom condition for loot tables that take in the player context such that you can check your player's progress before dropping that loot.

What about uninstalling mod? Overriding json files can generate problem or game check control sums of files after any startup.

For safe change in game i propably need to change all loots via events to custom and make custom usable blocks

Edited by _KS_

1 hour ago, _KS_ said:

What about uninstalling mod? Overriding json files can generate problem or game check control sums of files after any startup.

How would that generate problems? It would just revert to vanilla behavior on uninstall.

  • Author
7 minutes ago, ChampionAsh5357 said:

How would that generate problems? It would just revert to vanilla behavior on uninstall.

 

Ok. How u want to do this.
Using just file operations or getting game variables and changing it.
Sorry for my misunderstood im new in forge coding.
I will propably do this by cancelling events and calculating my self everyting

Edited by _KS_

45 minutes ago, _KS_ said:

Sorry for my misunderstood im new in forge coding.

JSON replacement is a vanilla system using datapacks. You can modify behavior in any which way without worrying.

45 minutes ago, _KS_ said:

Ok. How u want to do this.

I've already explained above. Override recipes and loot table JSONs for changing/disabling things. If not supported, use an associated event. Since you want the recipes to be unlocked based upon the player, you will most likely need to create a new block which supports taking in the player as part of the recipe calculation.

  • Author
9 minutes ago, ChampionAsh5357 said:

JSON replacement is a vanilla system using datapacks. You can modify behavior in any which way without worrying.

I've already explained above. Override recipes and loot table JSONs for changing/disabling things. If not supported, use an associated event. Since you want the recipes to be unlocked based upon the player, you will most likely need to create a new block which supports taking in the player as part of the recipe calculation.

Thx i will stay with my method because now i recognize i need to change all block inventories (player too)to make my mod work correctly. Still thx so much for help 

Edited by _KS_

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.