#General & Development Help

1 messages Β· Page 13 of 1

halcyon sphinx
#

im having troubles with some coding on my end

#

IManaCap mana = CapabilityRegistry.getMana(e.player).orElse(null);

#

iv been trying to get this into my code for days but i cant ever seem to get the builder to find e.player

#

which is most likley because im missing where its coming from

#

it doesn't help that e.player cant really be searched on github so i cant see anymore instances in ars nouvea's files on where it could be used

neat mango
#

e is not even defined here

halcyon sphinx
#

yea

#

im trying to define it

#

iv set up a few imports from the actuall helper but still can't define e

neat mango
#

thats not how it works. you cant just "define" it with imports

#

you need a reference to the object somewhere

#

did you copy paste this snippet from somwhere?

halcyon sphinx
#

1.20.1 version

#

similar to what i have now

#

i don't exactly know where e comes from as i cant really find anything that defines it via the helper you sent

#

i have removed e from execute() since that wasnt doing anything

neat mango
#

its an event

#

it is triggered by forge

#

the method is not called manually. it is automatically called by forge depending on the event type

halcyon sphinx
#

oh?

#

hmmmm

neat mango
#

for example PlayerTick will be called on everytick automatically

halcyon sphinx
#

ye

neat mango
#

I highly suggest you read how forge works before attempting something like this

halcyon sphinx
#

eeeeeeeeeeeg

#

how do you guys call it remove / add mana from glyphs then if not called manually?

#

eg the spell book

neat mango
#

I dont recall, you might have to check

#

but those are not handled by events

halcyon sphinx
#

i do know partly how forge works im not completly new but this is bamboozling

neat mango
#

spellbook interactions have player available so it is trivial

halcyon sphinx
#

i think i got somthin hold on

#

chonky what doe e stand for?

#

event?

#

mcreator has somthing extremly similar to what the helper had in it

#

except in the place of e its event

neat mango
#

yes

#

well you can call it whatever since its a variable name

halcyon sphinx
#

hrr

neat mango
#

?

halcyon sphinx
#

for whatever reason event doesn't seem to extend to player like it should

#

despite what the helper clearly does

neat mango
#

well you need to use the particular event

halcyon sphinx
#

?

neat mango
halcyon sphinx
#

im tryna use those event for players but it just simply cannot find any

neat mango
#

you need to use the exact type else you cant access its fields

halcyon sphinx
#

guh

neat mango
#

??

halcyon sphinx
#

im trying to find the exact feild here but its not Event or event

neat mango
#

what does that even mean ?

rocky grail
#

just pass ServerPlayer or something

halcyon sphinx
#

and im not sure exactly the player feild comes from if not event

halcyon sphinx
neat mango
#

it will if you use the right event type

neat mango
# neat mango

I even marked where you need to make the change ^^

#

just use the correct type in the second method

halcyon sphinx
#

ah

#

wait then what do i put in there if not event?

#

entity?

neat mango
#

TYPE

#

the variable type

#

you need to use TickEvent.PlayerTickEvent instead of Event

halcyon sphinx
#

ok

#

somthing is happening

#

its building

#

no godam way it actually worked

#

HOLY HELL

#

IT WORKED

#

alight i know what to do from here

#

aight so im gonna have to code in a helper to either auto generate or be imported which isnt to hard. then ill have to make it so you can pass varibles to it which isn't that hard either and actually elemenates another problem im facing

#

hey chonky while im here

#

how do you like

#

make custom glyphs show up on the table when you right click it with the spell book

#

im a bit stumped on how that works

rocky grail
#

i highly suggest you to open ars up in a java ide and snoop around

#

that said im quite doubtful that you can expose that functionality to mcreator in a clean way

halcyon sphinx
#

what you mean

#

what you mean by "in a clean way?

#

qther?

#

what you mean in a clean way

#

bamboozled

neat mango
#

as qther said, open the source code and look how the glyphs are implemented

halcyon sphinx
neat mango
#

you would need to extend AbstractEffect

halcyon sphinx
#

anyway

#

do you have any IDE's i can try?

neat mango
#

Intellij

halcyon sphinx
#

peferably any that can host a client a minecraft inside? (it its very useful for testing)

neat mango
#

all ides can do that

#

even vscode can do that if you know how

halcyon sphinx
#

wait wut

neat mango
#

stick with intellij

halcyon sphinx
#

ill try it when i can get it installed lol

#

i have already started putting ars novuea into procedures tho

#

ill try intelljj

#

aight i need to impliment this helper into my plugin code since manually overiding the procedure code makes bad things happen

#

thanks so much chonky

radiant depot
#

forgot to show but i finally remade the faces of the elemental mages, keeping only the air one as the old gandalf

#

if you wonder why they all have some sort of beard, they'd look pretty bad without

#

unsure of remaking the hair part since they'd have the armor on

halcyon sphinx
#

Yo question. Is there anyway I can call the change of mana manually?

#

Like how does the spell book manage to do it?

mossy hollow
#

What do you mean? What are you specifically trying to do?

halcyon sphinx
#

I'm trying to call a mana function such as mana.addmana() but I'm trying to execute it manually

#

Like on a player triggered event. Not a global tick event

mossy hollow
#

You need to get the players mana capability

halcyon sphinx
#

Yea I'm able to do this.

mossy hollow
#

CapabilityRegistry.getMana(player)

#

and then you can do ManaCap#removeMana(amount)

#

or addMana

halcyon sphinx
#

I'm coding this for 1.20.1 forge

#

Don't I have to send network packets?

mossy hollow
#

Should be similar

halcyon sphinx
#

Otherwise the changes wouldn't save

mossy hollow
#

No you shouldn't need to

#

Are you trying to increase current mana or max mana?

halcyon sphinx
#

This is what I tried to do

halcyon sphinx
mossy hollow
#

Then that should do it, no packet needed afaik

halcyon sphinx
#

However when I ran it that way the changes didn't sync

mossy hollow
#

call cap.syncToClient(player)

halcyon sphinx
#

Whenever i ran said method the changes would dissapear the second anything happened server side

halcyon sphinx
#

How do we define cap?

mossy hollow
#

mana works, in your example

#

that's the capability

#

mana.syncToClient(player)

halcyon sphinx
#

Hmm

#

I'm not sure if it showed up on the methods I could execute in 1.20.1 but I may have typed it wrong

mossy hollow
#

I'm looking at 1.20.1 rn

#

it's the same

halcyon sphinx
#

Ah ok

#

Do I need to call player in the () of my execute? Eg here

mossy hollow
#

Ah this is happening clientside, you need it serverside

#

Can you show your latest?

halcyon sphinx
#

litteraly not on pc lol

#

Yea I can but my latest is running off the server player tick

mossy hollow
#

When you're at your PC send a screenshot and I can try help further

halcyon sphinx
#

Kk

#

@mossy hollow

#

this was the codded example i made on the global tick procedure

rocky grail
#

Minecraft is not a class that exists on the server

#

you cannot use it for server stuff

mossy hollow
#

You're casting to a server player which won't work

halcyon sphinx
#

its just som stuff left over from the overides

#

im cleaning it up lol

halcyon sphinx
mossy hollow
#

Can you send the actual code? Using ```

#

```java
CODE
```

halcyon sphinx
#
import net.minecraft.client.Minecraft;

import javax.annotation.Nullable;

import com.hollingsworth.arsnouveau.setup.registry.CapabilityRegistry;
import com.hollingsworth.arsnouveau.api.mana.IManaCap;
import net.minecraft.world.entity.Entity;

@Mod.EventBusSubscriber
public class ManahelperProcedure{
    @SubscribeEvent
    public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
        if (event.phase == TickEvent.Phase.END) {
            execute(event);
        }
    }

    private static final Minecraft minecraft = Minecraft.getInstance();

    public static void execute() {
        execute(null);
    }

    private static void execute(@Nullable TickEvent.PlayerTickEvent event) {
        IManaCap mana = CapabilityRegistry.getMana(event.player).orElse(null);
        Networking.INSTANCE.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) event.player), new PacketUpdateMana(mana.getCurrentMana(), mana.getMaxMana(), mana.getGlyphBonus(), mana.getBookTier()));
        mana.addMana(3);
    }
}```
#

(j just assume anything before that such as the imports are there)

#

since my ide imports them automaticly

mossy hollow
#
import javax.annotation.Nullable;

import com.hollingsworth.arsnouveau.setup.registry.CapabilityRegistry;
import com.hollingsworth.arsnouveau.api.mana.IManaCap;
import net.minecraft.world.entity.Entity;

@Mod.EventBusSubscriber
public class ManahelperProcedure{
    @SubscribeEvent
    public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
        if (event.phase == TickEvent.Phase.END) {
            execute(event);
        }
    }

    private static void execute(TickEvent.PlayerTickEvent event) {
        if (event.player instanceof ServerPlayer) {
            IManaCap mana = CapabilityRegistry.getMana(event.player).orElse(null);
            if (mana == null) return;
            mana.addMana(3);
            mana.syncToClient(event.player);
        }
    }
}
#

try this

#

You'll need to import ServerPlayer

halcyon sphinx
#

im trying to call this on a manual event, somthing that i can call and without being on a playertickevent

mossy hollow
#

Okay, well the same code should work, just make sure it's called on the server

halcyon sphinx
#

how

#

wait how did this get here

#

nvm lol

#

yea like how

#

how do i call it server side?

mossy hollow
#

Depends on the event you use

halcyon sphinx
#

how does the spell book do it?

#

doesn't it wokr the same?

mossy hollow
#

Spells are fired on the server

#

And they resolve on the server

halcyon sphinx
#

hrrr

mossy hollow
#

The spellbook just casts the spell (by asking the server to cast it)

#

I recommend reading through this

halcyon sphinx
#

i see

#

ill be back

halcyon sphinx
#

this one i mean

#

(also im using forge not neoforge if that matters)

halcyon sphinx
#

yo

#

anyone there

halcyon sphinx
#

as said synctoclient doesnt work

halcyon sphinx
#

Bro it is the next day

shadow helm
#

And every single one of us is an unpaid volunteer.

halcyon sphinx
#

I know the pain. I own a mod development studio aswell. Just get back to me when you can please.

rugged urchin
# halcyon sphinx I know the pain. I own a mod development studio aswell. Just get back to me when...

Knowing that pain I'm surprised you made a post, then made a follow-up post an hour later because you thought the response was taking too long, and then complained the next day about no one responding to said post. People are busy. When they're not busy and decide to spend their ration of free time on contributing unpaid consultation, it's safe to assume they are probably going to direct that energy towards community members that respect their time.

hallow owl
halcyon sphinx
#

I'm sorry

#

I was frustrated

#

Can you help me with my code when you have time?

#

When your ready ofc. I didn't mean to seem pushy a few days ago.

rugged urchin
#

I'm not a programmer, so it'll be up to whoever is around and wants to look at it

halcyon sphinx
#

Ok

#

Take your time

halcyon sphinx
#

when you guys want, can someone please help me with getting mana.syncToclient to work? or help me out with manually sending a packet to server so i can use mana methods from the api?

#

i can't seem to be able to call sync to player for some reason, but the networking method seems to work best

#

but i can't call it manually for some reason (im not entirley sure if im passing on the right varible types to do that)

#

im trying to use

#

''
private static void execute(@Nullable TickEvent.PlayerTickEvent event) {
IManaCap mana = CapabilityRegistry.getMana(event.player).orElse(null);
Networking.INSTANCE.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) event.player), new PacketUpdateMana(mana.getCurrentMana(), mana.getMaxMana(), mana.getGlyphBonus(), mana.getBookTier()));

}

}''

#

im trying to use this but with any varible type that i can call manually

zealous zenith
#

this channel is for ars addon help, you arent going to be able to learn how neoforge or java modding works

halcyon sphinx
#

this is for an ars addon project, i just thought i could come here for help.

#

can you suggest me to any resources for forge variables?

#

also, for some reason synctoplayer isn't showing up/ working

#

has anyone had this issiue aswell?

#

(using this method would be so much easier then one i got)

rocky grail
#

it clearly works because mana works in 1.20

shadow helm
#

You being on Forge puts you in a bit of a spot with the Forge/NeoForge split, but I'd assume that https://discord.gg/neoforged is still a good resource for general forge help.
There's also pinned posts with general modding tutorials here πŸ™‚

rocky grail
#

yep theres still a 1.20 channel there

#

and it should be fairly applicable for forge since neo 1.20 is just forge rebranded

halcyon sphinx
#

i just don't understand, sync to player is right there in manacap and in manacap events but it just doesnt let me use it

#

im going to check my imports maybe im missing somthing

halcyon sphinx
#

they couldn't help me

#

they flat out told me not use mcreator 😦

#

so yea not much help

#

ill figure it out, thanks for trying to help tho

#

i do have a method that works niceley with mcreator

shadow helm
#

That's kinda the other reason why we're uncomfortable/unable to help you: You're using tooling that pretty much none of us use or want to use

halcyon sphinx
#

understandable

#

whats the bad rap around mcreator anyway? its a nice alternative for those who don't have the time to learn code right away. i know its code is bad but its all some people got

#

*i am currently trying to learn codding to propperly mod minecraft but school has me so burnt out i can't really comprhend anything.

#

can you guys suggest some resources in using forge functions

shadow helm
#

That's pretty much all the reason already. The code is somewhere between bad and "will kill a server if more than 2 players use the feature" and integrating it with other mods is, as you are finding out, hard.
That combined with having a toolset that we're familiar with and know how it works makes MCreator undesireable.

#

Kind of going to a professional work crew whose currently building a house with power tools and insisting they teach you how to do the same while all you have is a brick

halcyon sphinx
#

i can see why, lol.

shadow helm
halcyon sphinx
#

ight thank you

#

i got a dm from someone asking about the ars nouvea plugin i made litteraly today. im gonna go through and fix the issue hes having

shadow helm
#

We got one person who made an Addon with MCreator, but Lyrellion's been pretty busy with real life, I think, at least I haven't seen them in a while.
But maybe he can help once he's got more time again

halcyon sphinx
#

i think its somthing to do with my goofy ahh code i cobbled together code

#

im working on to improve the quality of it

#

but i know exactly what is wrong XD i just gota walk him through on how to fix it

#

anyways,

#

ill see if i can refer you to a problem you can actually fix in future lol

rocky grail
#

lyrellion has not made anything using mana afaik

mossy hollow
#

Hey folks, I have some composite model questions. I have a block model that uses a composite model, rendering my custom model loader and then rendering another layer over it. This works fine for the block model, but the item model instead renders just the custom model loader and not the overlay.
https://gist.github.com/Jarva/bdfbad0eb905d8e20d5b919018aa1f5c

#

cross posting from neocord

neat mango
#

whats a composite model? is that different from baked model?

mossy hollow
#

Yes composite model is a layered model

#

One of my layers is a baked model

#

So I'm rendering the baked model and then the outline model on-top

#
"facade": {
  "loader": "sf:facade",
  "model": {
    "parent": "sf:block/machine_casing"
  }
},
"overlay": {
  "parent": "sf:block/facade_overlay"
}
#

facade uses the baked model loader

#

and then renders the overlay model on top

neat mango
#

so your customloader/facade layer is working but not the overlay ?

mossy hollow
#

both work on block model

#

overlay doesn't work on item model

neat mango
#

Yeah

#

(you are gonna have fun when you have to redo everything again in 1.21.3+)

mossy hollow
#

😦

neat mango
#

can you also link the code ?

mossy hollow
#

time to finally push to github

neat mango
#

are you sure this is correct ?

mossy hollow
#

gist doens't allows slashes in the title

#

wait lemme re-add the overlay

neat mango
#

no errors when loading the model ?

mossy hollow
#

Nope

#

Updated now

neat mango
#

how do I get the colorful overlay ?

mossy hollow
#

two black looking blocks in my inventory are the same block

neat mango
#

is this not the block?

mossy hollow
#

I just pushed

neat mango
#

unrelated but I see you were trying to do itemModel datagen through blockstateprovider

#

does that work? I use ItemModelProvider class and call block methods from there

mossy hollow
#

It works, but I'm not using it currently

#

I use that approach in Ars Additions

mossy hollow
#

Found it in composite model source code

neat mango
#

Yep its undocumented it seems

#

you can look up datagen to see the methods

mossy hollow
#

Yeah i see, seems like that's fine, not sure why the item renders different

neat mango
#

lmao somethings funky with the render order

#

i deleted everything but the overlay from the render_order

#

so the system is working but I am assuming transparency isnt working

mossy hollow
#

😦

#

I can't figure out how to fix it and not getting replies in neocord

neat mango
#

its the facade layer

mossy hollow
#

Huh

#

Okay

#

So that's my fault then 😦

#

Time to debug

halcyon sphinx
#

How do you guys register spells and stuff?

mossy hollow
neat mango
#

I was trying to see if datagening it would help or point out a problem but it didnt. here is the code for it if you need it

mossy hollow
#

I figured it out

neat mango
#

oh?

#

what was the issue

mossy hollow
#

it's dumb

#
"from": [-0.01, -0.01, -0.01],
"to": [16.01, 16.01, 16.01],
#

this is needed on the overlay + face

neat mango
mossy hollow
#

enderio do it, but I didn't think it was needed because it works on block render

#

but item render needs it

neat mango
#

thats interesting

mossy hollow
#

it's dumb

#

it makes me scream

neat mango
#

it had a hunch that would was the case but I dismissed it

#

maybe report this to neoforge? sounds like a bug to me

#

especially because they are redoing how models are done

mossy hollow
#

github issue?

neat mango
#

maybe talk to them on discord first

chrome spear
#

Hi... I'm sorry if this is a hilarious question, but is it possible to write an addon that allows armors from other mods (e.g. Tinker's Construct) to be upgraded with threads, just like those from Ars Nouveau?

shadow helm
#

I've got excellent news for you: There's someone working on making that an enchant πŸ™‚

#

So yes, it's certainly possible

chrome spear
#

Oh wow that surely is exciting

shadow helm
# mossy hollow github issue?

This guy πŸ‘† specifically.
Just hasn't decided if he's going to put it into his Addon Ars Additions or the Ars ATM compat

mossy hollow
#

I have it fully working, just need to decide where the enchantment goes, probably Additions

chrome spear
#

Cool! I guess I'll look forward to seeing the release then πŸ™‚

neat mango
#

I am gonna do an unofficial survey. question to addon devs and other modders. when was the last time you guys played minecraft ?

#

and I mean properly played not bugtesting or anything related to modding

mossy hollow
#

About a month ago, I played through ATM10, before that was sometime in 2023

rocky grail
#

days ago

#

got busy with overdue school work

shadow helm
#

A year? More? Probably on the Arcane Isles server

radiant depot
#

Some new vanilla last month with friends

rugged urchin
#

Like actually played for my own enjoyment? πŸ˜… Prob about a year. Boot it up a few times a month for testing/referencing dev stuff.

shadow helm
#

@kindred pier

In regards to the chat you should probably use o
On what?

kindred pier
pallid rapids
#

so Reactive is an enchantment in base Ars that allows any item to become a spellcasting tool, basically. It gains a chance to cast on attacking with the item, or if you get hit if you are wearing Reactive Armor

shadow helm
#

And there are spellbooks you can find that have 1 specific spell hardcoded into them (as treasure), most of them coming from Patreon Rewards that's why we call them Patreon Tomes or Spellbooks

#

can't find the code for you right now because work but you should be able to find it in the AN github

kindred pier
kindred pier
pallid rapids
#

I would caution against messing with the patreon caster tomes tbh

shadow helm
#

you want "thing X" that casts spells like Ars Spells.
For code that casts spells like ars spells, you need to look at Ars Code for which I gave you ideas where to look

kindred pier
shadow helm
#

don't change how they work or interact, leave them as is

pallid rapids
#

well so like you're planning on making a mod, and if you replace the caster tomes then people won't be able to find their rewards in the way they would expect, and if your mod becomes popular and gets into a lot of pack you could be changing the intended experience with that feature entirely

shadow helm
#

use them as inspiration for how to code it, but don't change how they work

pallid rapids
#

hold on I have something for this...

#

Chesterton’s Fence is a simple rule of thumb that suggests you should never destroy a fence, change a rule, or alter a tradition if you do not understand why it was created in the first place. China’s Four Pests Campaign during the Great Leap Forward shows the tragic consequences of meddling with things we do not fully understand.

SUPPORT us to...

β–Ά Play video
kindred pier
pallid rapids
#

the spell tomes are only a patreon reward currently

#

they have no other function, they are spells built by the community and found as loot in game

#

you could build something like them and add that, but please do not replace them

#

and the video I shared is more just, when you are planning on changing something that already exists, you should make sure you are not destroying some important function... like, say, a patreon reward that people paid for

#

I share the video often, because people are often breaking things they don't understand within Ars

rugged urchin
#

The tomes were originally made to be an entry point to introduce our mod to people who stumbled onto them when playing modpacks. That's why they have their own mana rules set aside from the rest of the mod.

rocky grail
#

alex also has a tome that breaks the base glyph limit of the mod because alex is a rebel and doesnt care about your rules

#

(alex's magnificent mansion is 12 glyphs)

#

oh hey

#

theres another

#

uni's windshield is 11 glyphs

#

that ones because uni wanted the spell to start with orbit

#

but thats now orbit

#

oh wait other way around

pallid rapids
#

basically, adding stuff is up to your prerogative, but changing things that already exist should be done with extreme caution after you have full context of everything the thing you wish to change already does, because you are changing the default experience of the core mod which can often have sweeping implications

rocky grail
#

so now its selforbitknockbackamplifyx8

zealous zenith
#

I never said you couldnt make a tome more than 10 glyphs!

#

no one asked :^)

rocky grail
#

lol

#

i dont have a tome anyway

#

i still have an unclaimed starby though

zealous zenith
#

you can just add your own with your addon

rocky grail
#

still dont know what to do with it

radiant depot
#

even without, just use a datapack

#

tomes are recipes

#

starbies can probably be injected with kube

rocky grail
#

or i can make a major refactor for 1.22 and sneak in my own tome into the base mod and hope bailey doesnt notice

pallid rapids
#

if you volunteer to do the porting, you can slip whatever you want in lol

rocky grail
zealous zenith
#

no!

#

that is too far

rocky grail
#

lol

#

manual json with java is ew though

zealous zenith
#

playing with codecs for fun should get you a mandatory 2 week mental health vacation

rocky grail
#

ill take it tbh

pallid rapids
#

only the most premium of padded rooms

rocky grail
#

someone remind me in 10 hours to make emi support for ars unification

#

should be simple but i keep forgetting

radiant depot
#

you can make emi support for elemental, lol

#

should be pretty easy

mossy hollow
gleaming fox
#

Hello there
i have a few questions regarding the deltaMovement field inside of Entity

is it similar to Acceleration in traditional physic, and thus "consumed" every tick (set to Vec3.ZERO) after the position is added to the Entity's ?
do the x y and z axis of the Vec3 follow the regular axis of the world?

if/when you answer do ping me

zealous zenith
#

it is just their velocity

gleaming fox
#

alright, thanks for the help

sullen thicket
#

Hey, uh, I'm bored and trying to dip my little toesies into modding by making a little something something Ars addon. I'm currently editing gradle.properties. Unfortunately, the gradle.properties that came with the Ars example addon refers to 1.20.1 Forge instead of 1.21.1 NeoForge (intended platform). Can I get some pointers as to what I need to edit and how to make sure stuff works correctly?

neat mango
#

you can refer this. it is a very simple project

sullen thicket
#

THANK YOU

sullen thicket
mossy hollow
#

Everything in that branch refers to Neoforge

#

Here's the actual repo

sullen thicket
#

tyty

#

Okay, time to merge in the changes that'll allow use of Kotlin...

#

Did that

#

Is there an easy way to change out the mod ID everywhere it's currently used? Using IntelliJ IDEA and the refactor feature doesn't really like me

neat mango
#

does it use a modid field everywhere? it should be a constant in the main class

sullen thicket
sullen thicket
#

Looks easier for me to deal with than Java, ngl

#

I have been formally taught Java, but... the syntax, man

#

And my formal Java education was A) high school level B) several years ago C) interrupted by the pandemic

mossy hollow
#

I think you'll struggle more with support for kotlin

#

You dont need formal education

#

Or any education

sullen thicket
#

True

mossy hollow
#

Plus you have to write Java anyway for mixins

#

Can't do them in kotlin

sullen thicket
#

Fair enough. I wanna try it out, at the very least

#

What is this and how do I make it reflect the actual name I've chosen lol

mossy hollow
#

That's the datagen, it's generated when running the runData gradle task

neat mango
#

kt is good but dont jump into it before knowing java

#

you will pick up bad habits

neat mango
#

use features like type inference in java and I dont think you would miss kt unless you need very specific stuff

sullen thicket
#

I'll use Java first, then. Thank you

neat mango
#

if you hate any specific syntax part or found anything nice hmu

#

I like playing with language syntax

#

(its one of the reasons I am refactoring my mod for 5th time)

sullen thicket
#

Okay... now I need to add a new block. NeoForge documentation says it must be registered

neat mango
#

yes

#

everything needs to be registered, blocks, items, packets, even creative tabs

sullen thicket
#

Yeah, that makes sense. I'm not sure where the registration is to be inserted

neat mango
#

you generally create a registry (a deferred one) for a specific type and then register your objects to the registry.
then you register the registry itself to your modbus

sullen thicket
#

Is that done in the main class?

#

I feel a little overwhelmed. Ouch. I'm used to working with maybe one to three files when it comes to programming - modding's a NEW thing for me.

#

Sorry if I seem like a bit of a fool.

#

Oh, the example addon has a dedicated registry package... errr. lol

neat mango
#

you can do it in a single file but dont

#

it will get messy real fast

sullen thicket
#

Gotcha

sullen thicket
#

OK, managed to add a block & build

#

Let's see how I did

#

Oop? The game actually launches?

#

The game launches, seems I didn't register my new block correctly, though

neat mango
#

it wont appear in creative menu if you dont add it specifically

sullen thicket
#

I tried /give. It's not registered correctly in general

#

Okay... the block exists and my dumb ass didn't properly give it a texture (or a BlockItem)

#

At least the game boots up VERY quickly when I need to make a change and reload

#

[01Mar2025 17:18:06.321] [Worker-Main-8/WARN] [net.minecraft.client.resources.model.BlockStateModelLoader/]: Exception loading blockstate definition: 'ars_decor:blockstates/sourcestone_pillar.json' missing model for variant: 'ars_decor:sourcestone_pillar#'
you have your heckin json file why are you claiming you're missing a model for a variant

sullen thicket
#

figured That out

#

Yeah, it now doesn't throw the missing model error, now it just refuses to accept my texture

#

Feel free to rip me to shreds if I've done something silly.

sullen thicket
#

OK, the pillar textures Work now. Gonna go to bed

#

This is a placeholder

mossy hollow
#

@wet olive

To add perk slots: https://github.com/Jarva/All-The-Arcanist-Gear/blob/main/src/main/java/com/github/jarva/allthearcanistgear/setup/registry/ArsNouveauRegistry.java#L46-L59

To apply modifiers and provider tooltips:
https://github.com/Jarva/Ars-Additions/blob/1.21.0/src/main/java/com/github/jarva/arsadditions/event/ModEvents.java#L143-L193

You'll need to adjust slightly to fit your use case. The first link shows registering slots for an owned item. Second link shows the event method for modifiers and tooltips for unowned items. I can't show a complete example because my enchantment based system doesn't use the PerkRegistry, at least not directly.

GitHub

Contribute to Jarva/Ars-Additions development by creating an account on GitHub.

GitHub

Contribute to Jarva/All-The-Arcanist-Gear development by creating an account on GitHub.

wet finch
#

Is there a way to get the cost of the spell and then modify it before casting? like for example it'll cost 45 Mana but I want to modify either discount or make it more expensive (not using any spell) .

neat mango
#

look at the spell cost and consume events

wet olive
neat mango
mossy hollow
hallow owl
#

Did IDEA always have Hotswap? Have I just been that blind this whole time...? Could have saved so many clicks... 😭

rocky grail
#

yes lol

#

the new ui doesnt make it particularly obvious

#

but its the hammer icon on the old ui

radiant depot
#

you might have to adjust two settings for easier hotswap in some contexts

#

if it says schema changed with no method added/removed/signature changed

neat mango
radiant depot
#

the hotswap in debug mode can also be triggered right-click then there is the reload option

rocky grail
#

for me its generally just setting gradle stuff to run using idea and also using jbr

sullen thicket
#

Hey, is there a way to access flashpines with Ars Caelum?

#

I'm playing ATM9Sky and I can't get the Discharge glyph (and at least one other) because Flashpines

rocky grail
#

dont think so, and its pretty funny that they still havent fixed that

hallow owl
#

Is there no longer a {mod_name}.refmap.json in compiled .jar files in 1.21 NeoForge?

neat mango
#

if I understand it correctly, no since neo is no longer obfuscated during runtime

hallow owl
#

Amazing

#

Thanks!

mossy hollow
#

@rotund flower Just realised we didn't give you the addon developer role, feel free to make a post about it in #1019655289873641555 and mention it in #addon-announcements

timid topaz
#

I have arrived

#

But yes, I was thinking about making an addon that does an overhaul of the mana system. Basically the idea would be to pump up max mana, disable mana regen, change all gear that gives mana regen to max mana, and make it so that you can only regenerate mana from nearby filled source jars (and maybe some consumables?)

#

I'm just not sure if that would be technically feasible or not

#

I was kinda inspired by the dnd idea of needing to long rest to regain your spell slots

mossy hollow
#

I'd say it's possible, but it won't be very simple to do

timid topaz
#

Probably not something I should take on as a first project then

mossy hollow
#

Maybe not so difficult now that I'm thinking about it

You'll need a mixin to prevent mana regen from happening. You'll need a mixin to the max mana calculation to convert the mana regen attribute to max mana. You'll then want an event handler for when a player interacts with a source jar to set their mana

timid topaz
mossy hollow
#

Sure, you'll need to find a way to trigger code on the source jar each tick, check for nearby players and then grant them mana if they're missing it

timid topaz
#

Cool, thank you!

hallow owl
hallow owl
#

Also a question, are we still supposed to use Patchouli?

radiant depot
#

not really, it's in deprecation

mossy hollow
#

Nope

radiant depot
#

you can keep the files for ars.wiki

mossy hollow
#

But that will be converting to the new format in the future also

radiant depot
#

if you had a patchouli datagen, it's not hard to convert the code to the dynamic one

hallow owl
#

What is the 'dynamic one'?

mossy hollow
#

It's the new bespoke Ars documentation

hallow owl
#

And for users this will end up to be readible/consumable ingame?

radiant depot
hallow owl
#

Alright nice, I think I'm already on top of that one. At least, partially.

timid topaz
# hallow owl What inspired you to make this mod? Is there some specific universe or gameplay ...

This is probably an unpopular opinion, but I personally think restrictions are what make things fun. Overcoming challenges and weaknesses.

The way Ars is naturally lets you do pretty much anything with relatively low time investment. I think that’s fine in the right setting, but for my modpack it’s been very frustrating.

I wanted to find a way to change the playstyle to reintroduce challenges to overcome, basically

zealous saffron
#

Need mana? Just pull out a few source jars and plop them down around you

#

It's also why we haven't made a larger source jar. There's no puzzle to solve if you can store a million source with no change to your existing setup

#

Just place a bigger jar and you're done. It's boring

#

Instead we give a different puzzle. You can pick up jars and keep their storage. You can redirect source with relays.

#

So you can pick if you want to set up a network of source distribution, or maybe you want to do like xacris and qther have done and design jar breakers that turn it into item logistics instead of power logistics

hallow owl
rocky grail
#

tbh i think even just elemental makes ars spell casting very strong

#

but base ars has other issues

#

cough drygmy

hallow owl
zealous saffron
radiant depot
rugged urchin
#

problem with spell power as a stat in general is it's very volatile

#

every glyph in your spell gets that boost when most games treat stuff like that as a flat boost on top of the spell

#

it's not busted on a damage spell with only one dmg glyph, but delay can double triple quadruple dip into it

radiant depot
#

Cheap damage gives a negative spell power

#

In exchange for a flat mana discount

#

It's meant as a "this book won't be used for damage"

rugged urchin
#

ooh different thread nvm

timid topaz
#

I just want to make it so my players have like some slight movement advantage

#

Without being able to bypass literally everything cosplaying an airplane

#

But no matter what I do it seems a new way to fly with little effort pops up

hallow owl
#

Hmmm... I have thought about it before, but not a solution for it. I will sleep on it, it's something I've wanted to 'fix' for a while

timid topaz
#

My server is a fairly peaceful one centered around trading and building. I thought it would be cool to have wizards but they're kinda destroying the "chill and smell the roses" vibe

#

πŸ˜‚

zealous saffron
#

How much are you fighting vanilla mechanics with that? Elytra exist

hallow owl
#

That is a fair point, and that's only held back by how many rockets you have on you, which is also pretty easy to get around. But I would say that just because it's in vanilla doesn't mean it's necessarily balanced.

pallid rapids
#

but it does mean it is the baseline against which everything else is measured

neat mango
pallid rapids
#

yeah I was going to bring that up too lol

#

Happy Ghast in vanilla justifying things like dragon mounts in modded being perfectly balanced

#

flying brooms, etc

neat mango
#

I feels its a perfect addition

radiant depot
#

I would have kept it smol tho

#

The Little ghast is cute, the big one is odd

neat mango
#

i hope they do a custom texture for it

#

it will make a nice distinction between overworld and nether ghasts

zealous saffron
#

Big ghast for survival builders, wonder how easy it is to move for precision placing

pallid rapids
#

I think the big one was so that it could be a platform and have 4 people ride it at once. Plus, ghasts are big

#

it did make me think that it might be hard to get it into some tight spaces though

radiant depot
#

But i doubt

#

I guess we'll have an air focus steed afterall

pallid rapids
#

they literally showed people dismounting and walking on top of it

#

while they were showing off why it is helpful for building

zealous saffron
#

Makes sense

#

You can stand on boats

#

Now. Will they allow you to stay on it while it's moving if you're not mounted? Or did they take some pages from create's playbook?

timid topaz
#

And I've disabled it

neat mango
#

how is elytra broken? most mods give you creative flight much much earlier

rocky grail
#

do they?

#

cant speak for others tbf but i can get elytra in an hour if i wanted to

neat mango
#

most jetpack mods are early/mid game

radiant depot
hallow owl
rugged urchin
#

Almost like it creates a temporary invisible collision block and the ghast geometry then slowly meets back up with it before locking itself in place.

#

if you play in slow motion it looks like the player is slightly floating and you can see the ghast slowly sliding before locking and the player doesn't move at all

#

my guess is it won't be solid while flying

zealous saffron
#

Wonder if it could be used as an angel block

rugged urchin
#

Like if you can place a block against it?

zealous saffron
#

Yeah

rugged urchin
#

that would be helpful so you don't have to dirt pole up

#

with AN we will at least have pantomime

#

well... i guess we have flight rituals too lol

zealous saffron
#

Yeah I don't know of a vanilla solution to that.

I genuinely don't know how creative mode players make anything in true void worlds

#

How do you start a structure?

mossy hollow
#

/setblock ~ ~ ~

zealous saffron
#

Huh yeah I guess that would work. Ok lol

#

Always forget set block is a thing in vanilla now

pallid rapids
#

yup, just commands

rocky grail
#

i cant live without worldedit tbh

timid topaz
#

Axiom these days lol

hallow owl
#

Are a lot of people still playing on 1.20, or has everyone pretty much switched to 1.21 now? Newer Ars features are not on 1.20, right?

radiant depot
#

1.20 is in its life support phase

pallid rapids
#

critical fixes but no new features

radiant depot
#

now that Create switched over, it's likely that the packs still in development will finish up and release for 1.20 for a bit

#

but in the meantime 1.21 pack making will keep on, and soon 1.22 era will start

#

but 1.22 won't be quick, there's an hell of breaking changes

zealous saffron
#

Dried ghast

pallid rapids
#

chunk-loading pearls

#

random ticks in chunkloaded chunks

hallow owl
rugged urchin
#

1.21 still feels like it happened a month ago to me

hallow owl
#

you mean... a day πŸ₯΅

timid topaz
#

1.20 is already getting deprecated? That's crazy 😭

#

Is that why ars technica no get 1.20? madge

rugged urchin
#

we've always stopped content for the previous version once we've released to the new one

zealous saffron
#

Technica has a 1.20 version

#

I think that's for create 5 though

timid topaz
timid topaz
rugged urchin
#

yeah i do no envy what y'all are having to put up with

#

sometimes we secretly wish Mojang would stop supporting Java so we can develop on the same version

timid topaz
#

Nothing interesting or useful, at least

#

The game's gotten the skyrim treatment of being a shell for mods for a long time now, it'd be nice if they just let it be that

rugged urchin
#

i'm mixed on it overall

hallow owl
timid topaz
#

I'll just have to add it when I update my pack instead

gleaming fox
#

Hello there
Is there a tool to automate imports changes from 1.20.1 to 1.21 ?

mossy hollow
#

There's one to automate forge -> neoforge if that's what you mean

gleaming fox
#

ah yes that would be great

#

could you please send me the link?

radiant depot
#

Should be in the pins?

#

#1019655534900678737 message

#

This plus follow the primers Jarva linked as it's a collection of the other primers I sent over the months

gleaming fox
#

alr, ty

radiant depot
#

the rename script must be the first thing you do

#

then you change the gradle stuff and start porting (likely check primer by primer to not get lost)

#

for gradle and other little shenanigans, the example addon is updated to 1.21 on my fork

#

unsure if it is merged into the base repo

gleaming fox
#

will do

#

thanks for the help

misty hearth
#

so just want some other devs takes on this, in api.ritual/StructureRitual.java the lines in the tick() method:

if (getWorld().getBlockState(translatedPos).getMaterial().isReplaceable()) {
    getWorld().setBlock(translatedPos, blockInfo.state, 2);

this is about line 89(or at least it is on the 1.19.x branch I am viewing)

my thought is this could maybe be replaced by removing the if statement with the isReplaceable() check in it so it would look more like:

// Remove the replaceable-check
getWorld().setBlock(translatedPos, blockInfo.state, 2);
BlockEntity blockentity1 = getWorld().getBlockEntity(translatedPos);
if (blockentity1 != null) {
    if (blockentity1 instanceof RandomizableContainerBlockEntity) {
        blockInfo.nbt.putLong("LootTableSeed", getWorld().random.nextLong());
    }
    blockentity1.load(blockInfo.nbt);
}
getWorld().playSound(null, translatedPos,
    blockInfo.state.getSoundType().getPlaceSound(), SoundSource.BLOCKS, 1.0F, 1.0F);
placeCount++;
if(biome != null){
    RitualUtil.changeBiome(getWorld(), translatedPos, biome);
}

replacing lines 89-103 in the original method

the main caveat to this approach is players would need to be thoroughly warned that these rituals are destructive and could very easily destroy their base/infrastructures if they aren't careful. thoughts?

cinder yoke
misty hearth
#

this is the current mixin I am cooking up:

import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.FluidState;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;

/**
 * Makes all blocks globally "replaceable" unless they're a Tile Entity block.
 */
@Mixin(BlockBehaviour.BlockStateBase.class)
public class BlockStateBaseMixin {

    @Overwrite
    public boolean isReplaceable(FluidState fluidState) {
        // If the block is a tile-entity block, treat it as NOT replaceable;
        // else, treat it as always replaceable.
        BlockBehaviour.BlockStateBase self = (BlockBehaviour.BlockStateBase)(Object)this;
        return !(self.getBlock() instanceof EntityBlock);
    }
}

I will report back how this goes as it is a sort of nuclear approach lol

cinder yoke
#

just gotta believe

misty hearth
#

I finally did it

#

that took awhile ngl

#

@cinder yoke I had to override the tick() method in both StructureRitual and ConjureBiomeRitualshady

cinder yoke
#

Ooh it shits out the blocks that were replaced?

#

Huh

misty hearth
#

yeah I need to fix it giving the blocks that were destroyed

#

since I am gonna change the structures to replace one color of antimatter with another color

#

but I am making progress so I am happy for now

cinder yoke
#

Neato!

misty hearth
#

I'll post more stuff here when I make more progress but thanks for the help finding the code earlier!

cinder yoke
#

Yup yup

misty hearth
#

any idea how hard it is to replace the structures in those summon rituals? I imagine its just editing the stucture files/NBTs but I don't actually have any experience with editing structure files lol.

#

always good to learn something new I suppose

cinder yoke
#

yeah you can just use a simple datapack to replace the nbt file... telepathic grunt has some great tutorials on YT and possibly in a wiki somewhere, he's kinda the structure guru of modded mc

misty hearth
#

ok sweet, Ill check them out

#

thanks for the rec

#

sounds simple enough

misty hearth
#

i might just add a conditional to not drop concrete specifically for my use case but everything else gets dropped

boreal swift
#

Hey all. I was wondering if someone could help me track down/understand the part of the code that does the changing of the biome in the conjure island rituals. I’m making my own mod inspired by this functionality after using it in ATM9 to the Sky and a little bit on how biomes can be made in Terraria.

So I’ve been searching through the GitHub and I’ve been able to find pretty much everything about how it works, how it decides the biomes by the ingredients, replaces the blocks, decides the dimensions, all that, but what I can’t figure out in my inexperience is what actually does the changing of the Biome itself on the β€œback end”. So if someone could help point that out to me I would appreciate it. It may be just in front of my face and I can’t see it because I’m new, or it could be because I’m trying to find the answer by looking through things on my phone at work and if I could pull up the Neoforge/minecraft directory thing in IntelliJ I would be able to see it πŸ˜‚

boreal swift
#

Ok so I’m in the right place it’s just not computing in the brain yet. Thank you!

boreal swift
#

Ah thank you! I think my eyes were skipping over the β€œ.set” that’s likely to be the crux of what I need.

timid topaz
#

Hey guys what 1.21 version is best for mod support rn?

zealous zenith
#

1.21.1

timid topaz
#

Thanks Bailey

rocky elbow
#

what addons add amplify 2 and 3

#

i think ive added most of them but i cant find them

#

and a couple otehr glyphs too

#

1.20.1 btw

shadow helm
#

Not dev related but Too Many Glyphs

rocky elbow
#

well where else would i send general messages for addons

#

i presumed i would send them in the general chat

hallow owl
gleaming fox
#

hello there
i just got back into AN addon making
may i ask what does nuggets does/what are it's use cases?
thank for the help

radiant depot
#

nuggets is the library where bailey put all the doc related stuff

gleaming fox
#

oh i see

#

thanks for the info
ill make sure to read through it when my computer gets fixed

mossy hollow
#

It's for sharing code between Ars and BlockPrints afaik

radiant depot
#

unsure of what else it has

#

you shouldn't need to use it for addon making, maybe for custom pages but very little direct dependecy

gleaming fox
#

alright

rugged urchin
gleaming fox
#

hello there
is there a way to "embed" an NBT tag into another tag?

rocky grail
#

CompoundTag can store CompoundTag

#

well

#

lists can too

gleaming fox
#

well i know how to retrieve a tag inside another tag but i don't know how to do it...

#

oh

#

seems like i'm blind

#

i could have just used "put" instead of using whatever method i was thinking of using...

hallow owl
#

What does it mean if a version of forge (itself) is not "on CurseForge"?

radiant depot
#

Usually, pretty weird and user fault for not seeing it

#

Curse should be able to see all the subversion of the target version...

zealous saffron
#

Unless you're looking for forge where you should be looking for neoforge?

hallow owl
#

Hmm I don't think it's that. Also some other people mention they have a higher minor version but it's also not satisfied by that

#

loaderVersion="[47.3.33,)"

Shouldn't that be 47.3.33 or above?

radiant depot
#

Have you tried giving it a try outside dev env?

radiant depot
hallow owl
#

They mentioned they use 47.4.0. I'll give it a try when I'm back from work

hallow owl
#

To my understanding, it's something very weird with Forge, or, it seems to be a problem with how version ranges for maven work
https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
It seems you cannot specify a patch number here, only major and minor.

So I guess I'll just ask users to use 47.4 and above since I can't specifically target 47.4.30 and above which was needed

#

Ohhh... oh wow...

#

I got:

forge_version=47.4.0
dependencies {
    minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"

However

#

πŸ’€

#

So in a nutshell it looks like forge is not giving its own minor and patch number to the loader checker

radiant depot
#

Tried asking in Neoforge discord?

#

Was it really only fixed when they switched to neo?

misty hearth
#

who would I talk to about getting the developer role? I just developed the 1.20.1 port of enigmatic unity and am the maintainer of that version for the addon

steady yacht
#

Hello

#

I decided to try modding

#

in 1.20.1 lol

unreal summit
#

Why 1.20.1?

steady yacht
#

I don't know how to make a mod or addon so it is just for experimental purposes

#

And for learning ofc

#

If I need help hopefully I can ask you guys :)

shadow helm
#

That's what #1019655534900678737 is about 😁

neat mango
steady yacht
rocky elbow
#

one of the biggest versions for modding rn

#

annoying when some mods update and leave behind the important versions tho

zealous zenith
#

Because every line of code on an older version is another line of code that has to be updated later, mods are forward looking so you even have content for the next β€œimportant” version at all

#

1.21 is a huge set of changes

steady yacht
#

salute to ppl who backport 🫑

unreal summit
#

I was barely able to forward port my mods, and there are still parts of Ars Fauna spawning that are broken in the 1.21.1 port

hallow owl
#

can confirm that 1.20 -> 1.21 was a huge time sink for me as well

unreal summit
#

Trying to fix Ars Fauna mobs spawning in the wrong dimensions. What code do I need to insert to limit them to overworld spawn only?

zealous zenith
#

there is an IS_OVERWORLD tag you need to use I believe

#

you can look at the ars spawn files for that

unreal summit
#

I think I just found it. So if I use β€œMinecraft:is_overworld” it will potentially spawn in any overworld biome, including modded biomes?

misty hearth
unreal summit
#

Fair enough

dark mulch
#

is it too late to make an addon for 1.20?

#

i was gonna go ahead and give it a go as thats the only version i play on for now

mossy hollow
#

You can make addons for any version you want, the only issue may be if you need changes in the base mod, then you'll need to use mixins instead

willow jewel
#

Where does Ars store the player's current mana? I'm trying to make a hud, but I can't seem to find where is this value and display it to the user.

rocky grail
#

in an attachment iirc

willow jewel
#

I'd like to apologize in advance, I'm not a programmer so I find most of what I'm doing and finding confusing. I'm looking in the source code for any mention of anything similar to getMana/mana/playermana and load it in KubeJS, however none of it seems to load it. I went to common.capability.ManaCapAttacher since it seemed the most similar to what you said, but I'm not sure what class(?) needs to be referenced in the client script of KubeJS. I also found AttachmentsRegistry, but that's not on 1.20.1 . Once again, I'm sorry for any misused term or if I'm not being clear.

zealous zenith
#

I think the file is called manaUtil?

#

You can also look at where the capability is used in the capabilityregistry file. Not at my desk at the moment so not 100% on those names

crude leaf
#

I should make an addon

hallow owl
steady yacht
misty hearth
unreal summit
zealous saffron
#

on

unreal summit
#

Anyone know how to add a custom portal recipe via a datapack?

zealous zenith
#

custom portal? like add a block to the ars nouveau portals?

unreal summit
#

Like making a nether portal, but leading to a different dimension

#

I’ve got a dimension in Ars Expeditions that does not have a means to access it outside of commands, and I’m trying to figure out if there’s a way to datapack in a custom portal.

#

Or barring that, data packing in a custom craftable block that can be interacted with to teleport the user to that dimension.

zealous zenith
#

I dont think datapacks can do that, maybe the teleporting could be done with MCFunctions but im not sure how those work, and they are super laggy

unreal summit
#

I found a Fabric mod that can do it, but nothing for NeoForge

radiant depot
#

I guess one could pull it with Immersive Portals but it's overkill

#

Not to mention possible compat problems

#

Oh I guess you could use Kube to somehow trigger something like the stable scroll

#

...but every dimension has its rules for entry points...

#

And warp portals need an exact xyz

loud widget
#

does the scryer require the spectated chunk to be loaded by the player? (does it work if the player is very far away from it or maybe in another dimension?)

#

Im trying to implement something similar, but i want to be able to 'watch' (like a camera or a flying drone) an entity that is very far away in a possibly unloaded chunk and i was thinking if maybe the scryer implementation could be helpful for that?

mossy hollow
#

The scryer temporarily loads the chunk

loud widget
#

then how does it handle changing the player camera to be able to see things in that spot? From what im testing, the stuff thats in the far away place on loads if the player is near. Even if i change the player camera to see whats in there, it only shows void because even though the chunk is force loaded in the server, in the client theres nothing as the player is not there

loud widget
#

1.20.1

#

is that different from 1.21 to 1.20 conceptually?

mossy hollow
#

Very

loud widget
#

So in 1.21 just by force loading the chunk in the server the client can already see whats in there if they switch the camera to something thats in that chunk?

mossy hollow
#

I'm assuming there's a packet to sync the chunk to the player

loud widget
#

ah, ok. But then we would need to send every chunk that "should be loaded" to the client, right?

#

What about the entities? Would having the chunks "synched" to the client already be enough to display the entities there?

zealous zenith
#

You need a bunch of mixins to make the scryer camera work, by default Minecraft culls entity syncing by distance so the mixins force the game to sync if the camera the player is viewing through is there

loud widget
#

Im thinking of doing a workaround of teleporting the player to the position to load stuff there and then when they exit the spectator mode they would be teleported back to where they were before

#

given that i handle properly the edge cases of the player leaving the game when they are spectating and that i persist everything relevant to make restoring the original player position properly, i think there should be no problem, right?

#

ill also change the player gamemode to spectator when they spectate an entity (and revert it to survival or whatever gamemode they were before going into entity spectator mode)

zealous zenith
#

If you are making a mod I’d just use the mixins, teleporting the player and changing their game mode is going to give you a ton of exploits

loud widget
#

ah, ok. Ill keep that in mind. Thank you for the advice πŸ™‚

edgy reef
#

So throwing this in here more as a question got inspired by you guys to make an addon for a golem mod. Very very brand new to modding in general so learning as i go but atleast wanted to show a model ive made so far and might ask in here from time to time for some help if possible.

rugged urchin
#

very cute!

radiant depot
#

Levitating ball construct, my first entity too technically, lmao

mossy hollow
#

What addons in 1.21 add glyphs?
Additions, Controle, Elemental, Technica, NEG and SBM are what I have so far

radiant depot
#

Hex/Unity whatever scalaes successor is unreleased

#

I don't remember if there are other addons in 1.21 atm

steady yacht
#

oh wait

#

This reminded me that ars plus isnt on 1.21 either

#

which means going to 1.21 is further than I had imagined

mossy hollow
#

@arctic bronze Do you have any 1.21 plans?

steady yacht
#

Btw Trinkets was gonna be ported to 1.21 but some big bad happened and clement has to start over or something

arctic bronze
mossy hollow
#

@hallow owl Do you do anything strange for your mod build or mixins?

I'm trying to add Ars Technica to ArsAddonBuilder, but it's failing to prepare SchamticannonMixin when running the doc export mod

hallow owl
mossy hollow
#

I think it may have been due to the create version I was pulling in, I'm now trying to alter it, will let you know if I can't

mossy hollow
mossy hollow
#

Allows us to create things like this

arctic bronze
mossy hollow
#

It's why I was asking about Ars Plus, so I could include it in the addon builder

#

but the 1.20 version of addon builder is much less powerful

arctic bronze
mossy hollow
#

I think I've fixed it, it was loading in your sources jar instead of the main mod jar

mossy hollow
neat mango
#

@mossy hollow you have done structure generation yeah? got any resources or tips for it ?

#

how do you even test it?

mossy hollow
#

I still need to create custom placement rules for the Additions structures, they just reuse vanilla ones

neat mango
#

yeah how do you do it ?

#

can I create custom spawn rules? make mobs spawn in the structure etc

mossy hollow
#

You need a structure set, structure and maybe some other things?

#

I can't remember of the top of my head everything

neat mango
#

apparently this includes everything needed. it is updated quite frequently and for all versions

forest flume
#

Hey, I've got a question- Not sure if this is the right place to ask it or not, but I'm working on a modpack and am using KubeJS to add some extra objects.

Some of these objects are variations of Ars models.

To do this, I've been using models from the ars-nouveau repository
https://github.com/baileyholl/Ars-Nouveau/tree/main

For some of these, like the pedestals/braziers, this works, but then there's some strange things going on with some other models (E.g. enchantment apparatus, scribes table, etc).

I noticed the texture linked in these models seems odd to me

I.e. using the 'potion_jar' texture for the scribes table, or not referencing any model data or textures at all.

Not sure if these other models get their data somewhere else, or are linked in some other way.

Any ideas or insights would be helpful. πŸ™‚ Thanks

zealous zenith
#

anything with an animation is going to be a geckolib model, which links the textures in code - their model files there with the incorrect textures are just used for the display settings on the item

#

Im not sure how kubejs is assigning the blockentity that is associated with your new blocks, but you would need to be able to somehow set the geckolib renderer for those animated blocks as well

#

not really sure that is possible

forest flume
#

Hmm... Probably not..

forest flume
#

Mmmm.. May have to just simplify things... Thanks for your help!

#

I suppose it's also worth asking- Are there any tags that allow the pedestals or braziers to work the way they do, or is that something hardcoded into the object?

zealous zenith
#

that is tied to the blockentity data

#

any blocks you make with kubejs have to have the same blockentity

hasty nacelle
#

I just realized this thing exists

forest flume
#

Ah man... So there's no way to create a "new" block that shares the same blockentity data since it becomes immutable after a block is registered.

I thought a potential solution was to use the existing objects, but use different models depending on the blockstates. I could create a custom blockstate for "color"... Unfortunately, all blockstate properties also need to be defined when a block is registered, so I cannot add any blockstate properties to ars objects.

I saw some objects had blockstate properties like rotation, but others didn't have any at all. Am I correct in assuming if the blockstate json has no properties listed, there are none for that block? Even if there were 3 "unused" boolean properties, I could multiplex them.

radiant depot
#

There is an event to add blocks to the tile

#

I used it to add signs

wheat rover
#

I'm struggling with changing and adding imbuement chamber recipes using Kubejs. I managed to play around with enchanting apparatus and amethyst golem conversions successfully and the imbuement chamber has been the only one to cause me problems so far.

event.custom({
type: "ars_nouveau:imbuement",
count: 1,
input: { tag: "forge:gems/source" },
output: "minecraft:netherite_ingot",
pedestalItems: [
{
"item": { item: "minecraft:flint_and_steel" },
},
{
"item": { item: "minecraft:stone" },
},
{
"item": { item: "minecraft:gunpowder" },
}
],
source: 1000
});

I stole the fire essence recipe, replaced the output to be netherite ingot, change one of the pedestals to be stone instead of torch and changed the source value. It doesn't show up in JEI after saving and reloading and the chamber doesn't accept the recipe

forest flume
#

I haven't tried adding an imbuement chamber recipe with pedestal items yet. It works for me adding a single item with no pedestals-- I have basically the form of what you have above. Also, not sure it would make a difference, but have you tried kubejs-ars-nouveau? https://www.curseforge.com/minecraft/mc-mods/kubejs-ars-nouveau - Also, Have you tried tag: "c:gems/source"? - Didn't see the forge one in the ars repo at least https://github.com/search?q=repo%3Abaileyholl%2FArs-Nouveau gems%2Fsource&type=code

CurseForge

KubeJS support for Ars Nouveau
2.6M Downloads | Mods

GitHub

GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.

hasty nacelle
forest flume
#

The octocat \m/^_^\m/

hasty nacelle
#

I didn't know

wheat rover
radiant depot
#

If you're in 1.21 then surely you have to change the tag used by the ingredient

#

forge namespace is deprecated

#

Also weird if no error appear in the logs?

#

You could try to peek in Enigmatica GitHub to see if they add custom recipes via Kube, they usually mix stuff a bit with ars

wheat rover
radiant depot
wheat rover
dark mulch
hasty nacelle
rocky grail
#

mainly assets and wiki stuff

#

also glyph data

wheat rover
wheat rover
#

Is there a way to modify Wixie potion output amounts? I want to make it so that wixies craft 1000mbs of a potion at one go instead of 750

wheat rover
shadow helm
#

Can you program Java already?

wheat rover
# shadow helm Can you program Java already?

I have zero knowledge with Java, I barely started figuring out kubejs and was hoping for a solution using that. But it seems that neither buffing ars wixies nor nerfing create brewing is going to be possible as easily

shadow helm
#

Pretty much, yeah.
Mixins are one of the deep ends of Minecraft modding, if you don't have programming experience, it'll certainly be a challenge

wheat rover
#

I guess I'll shelve the idea of balancing create brewing for a while then, I've barely started with the modpack and this seems like the type of challenge that will make me give up a project if it doesn't go well

radiant depot
#

they are a bit paradoxical, easy only if you know what you're doing

#

there's not much code to write but you need to know well where you are gonna inject that code and with what parameters

wheat rover
#

Sooo, I just realized you can make enchanting apparatus recipes with more than 8 pedestal items.

Does anyone know what the limits is?

mossy hollow
wheat rover
#

I doubt I'll be making a recipe big enough to hit the space limit anyway, thanks!

rocky grail
#

be warned that it probably wont look great on the recipe viewers though

wheat rover
#

🀣 Yeah I think the limit might be how many items JEI can show without overlapping

neat mango
#

anyone knows an item that changes its textures temporarily

#

oh I should look into the bow model

mossy hollow
#

Define temporarily

#

or compass

radiant depot
#

you can have nbt-based item models

#

a bit like how the blood magic sword worked

neat mango
#

I want to change how the item looks when its on cooldown

neat mango
mossy hollow
#

It's a client hook

#

Look at ars additions, the Wayfinder

#

or probably the haversack one will be simpler

#

that opens/closes the haversack based on whether the chunk is loaded

neat mango
#

oh now that I think , there are so many items that changes textures

#

so where are these properties used? probably directly in the model ?

radiant depot
#

once you link a field to the property, you can use it for model override in predicate

neat mango
#

perfect!

mossy hollow
#

They only accept floats for the property value, so just use like 0 and 1 for loaded

neat mango
#

out of curiosity, do you datagen item and block models ?

#

i have been trying to datagen all things possible but not sure if its worth it lol as it gets annoying at times

mossy hollow
#

I datagen most I think

neat mango
neat mango
neat mango
#

@mossy hollow do remember that mojang's release policy has changed and we might not get "major" versions anymore

#

mojang has yet to give a clear distinction between updates, versions and game drops

mossy hollow
#

Their release policy changed but they didn't say anything about dropping major versions

#

I thought they just said they're going to worry less about breaking changes between minor versions

neat mango
#

I could very well see they drop the current versioning scheme altogether

mossy hollow
#

Maybe

#

Anyway, a major version for Ars will be when a new game version is supported

neat mango
mossy hollow
#

When Ars ports to a new game version

neat mango
#

ah okay

radiant depot
#

Probably as last drop to close the year cycle?

neat mango
radiant depot
#

Having Minecraft version 1.21.11 would be too weird after all these years

#

They just need a good enough content thing to justify the bump

#

At worst, Vibrant Visuals Java since it might entail switching from OGL to Vulkan

#

I can understand it doesn't matter much to Bedrock as it can't version switch

neat mango
#

vulkan is not happening any time soon atleast from what I heard

#

too many devices will lose support

radiant depot
#

Supporting both was on the table too

#

Obv there's gonna be some time before they even decide about that

#

They are slipping in minor changes along the way in the minor updates, like the fog stuff

arctic bronze
#

How hard is it to find someone to make textures and models? πŸ€” I'm not really satisfied with what I can do and would be willing to give someone some money to do some of that stuff for me. Same with making builds for structures

#

not asking people here, just curious if there's somewhere where people do that kinda thing

hasty nacelle
#

i do do that kinda thing

arctic bronze
hasty nacelle
#

ok

mossy hollow
arctic bronze
white yachtBOT
#

@mossy hollow

Result for search: precise

**Effect:** Precise Delay from Ars Controle

Delays the remainder of the spell by (2 ^ Extend Time Augments) ticks.

Extend Time: ars_nouveau.augment_desc.glyph_precise_delay_glyph_extend_time

Tier

2

Cost

0

Schools

Manipulation

mossy hollow
#

@rocky grail We now have glyph search including for controle, but you need to add the description lang key it seems

rocky grail
mossy hollow
#

Strange, will investigate

mossy hollow
rocky grail
#

fixed

hasty nacelle
#

Neato

mossy hollow
rocky grail
#

fixing my lang datagen

mossy hollow
#

Ah

radiant depot
#

Even if i don't feel like the refractoring to make it it's not gonna happen soon, what would you want/expect in an addon library to jarjar?

For now it's likely going to get:
Api interfaces that would be otherwise duplicated across my mods, like IPropagator for instance.
Attributes that would be nice to share but are a mess to opt-support, like Resizing
Fluid stuff ( source fluid and the various utils)

rocky grail
#

tbh i think source fluid should go into base

#

but base doesnt really deal with fluids at all atm

radiant depot
#

yeah this is basically asking things that fit the "should be in base but won't be in base, so we make a common extension to bundle in addons"

hasty nacelle
#

Real

rugged urchin
#

source ain't a fluid

zealous saffron
#

Should full the jar left to right instead of bottom to top

#

Doesn't matter the side either. Just always from the left

#

Let's see a fluid do that

arctic bronze
#

Just trying to find an example of an animated armor texture. How difficult is it to implement?

radiant depot
#

Most likely, have the texture cycle between different ones periodically

#

Exploit the texture getter

arctic bronze
#

What would be a good way to make a trackable stat for a player? πŸ€”

#

Was gonna make a ten shadows themed glyph but I need a way to keep track of how many rituals a player has completed. Wondering if there's an elegant way to do this. Would want to be able to reference the value in the effect glyph to check it

rocky grail
mossy hollow
crimson ore
#

Hey, i was sent here to ask this.

im triyng to make a mod that messes with the mana system a little, easy things like setting the mana but i cant figure out how mana works. Im only finding things on setting max mana or mana regen. in iron spells and spellbooks you just set the mana stat but in ars im confused cuz all i found was the manadata class with no indication on how it can be used. im not that deep into the code to understand how attachment. something about serial nbts but i have no idea how to use that

crimson ore
#

i think i found something. i did it like this
ManaCap manaCap = CapabilityRegistry.getMana(player);

now i have to see how to manipulate that but i think i got it

radiant depot
#

You won't get far manipulating that if you aim to max mana instead of current mana (for that it's fine)

#

To edit max mana there is the event iirc

#

It would probably override any other change done to the stat

neat mango
#

anyone got examples of custom shaders ? (not the sodium kind)

mossy hollow
#

Skyweave?

neat mango
#

found it in ars nouveau (the mod has become a reference for most of my things lol)

neat mango
#

oh Sammy of Malum wrote it ?

zealous zenith
#

Ya

#

It was a commission

neat mango
#

definitely worth every penny. they are a wizard when it comes to any kind of vfx. I havent yet played malum but from images, it looks crazy good

#

found this randomly when scrolling. its so good

unreal summit
#

I’ve started tinkering with Malum in Expeditions, but haven’t gotten very deep into it yet

mossy hollow
#

Interesting mod being worked on, allowing modpack users to select the mods they want to use

#

(being made by matyrobbrt)

hasty nacelle
#

so like if there is 2 mods that do the same thing (like minimap mods) you can decide between them? thats genius

wheat rover
#

Oh that looks incredible. I have friends who swear by Xaero minimap but I think Journey is just better.

The recipe viewer choice or config choices at launch also seem helpful for modpack devs

neat mango
radiant depot
#

I mean, that's kinda proof of concept

neat mango
#

lol yeah

#

I was talking about the swing(?) ui

#

havent seen that in years

shadow helm
#

I remember writing them. Back in Java 8 where every bloody action listener required another anonymous subclass.
CatHiss

neat mango
#

was that before lambdas ?

shadow helm
#

That's why I specified Java 8, yeah

#

Dark Times.

#

Even darker considering that I know of some still in development production software that is still running on Java 7. Poor souls, maintaining that monstrosity.

radiant depot
#

i can't fathom working on java < 17 anymore

mossy hollow
#

Just like crash assistant

neat mango
#

Yeah that makes sense

zealous saffron
#

Just do it in labview

white yachtBOT
#

@steady yacht

Infinite Glyphs

It's possible to increase the glyph limit in spells in two different ways.

The first and easiest way is using a Spell Book from All-The-Arcanist-Gear, these have additional glyph slots baked into them.

The second method is to modify the ars_nouveau-server.toml config file.
To do this, you need to first set infiniteSpells to true. Secondly you need to modify infiniteSpellLimit to be the number of additional glyph slots you wish to have available.
A value of 10 will grant the player 10 additional glyph slots, for a maximum of 20 glyphs per spell.
A value of -9 will cause the player to have just 1 glyph slot, essentially making the Spell Books only used for setting Enchanter Tools.

Noticed a problem?

Please raise an issue with @mossy hollow

steady yacht
#

Whats that last part about "essentially making the spell books only used for setting enchanter tools"

pallid rapids
#

because a one glyph spell is just a form

steady yacht
#

Question:

Does that mean you can do -8 or -5 too?

pallid rapids
#

sure

#

it's a variable

steady yacht
#

idk why it makes me uneasy reading that πŸ˜‚πŸ˜‚

#

opposite of "oddly satisfying"

pallid rapids
#

think there is a thing about not being able to just add 5 glyphs, but I think that was a recent fix

steady yacht
#

lol

pallid rapids
#

like 10 was the minimum to add before, I think

steady yacht
#

yeah 10-1000

radiant depot
#

loaf wanted less than 10 slots and it seemed to not break anything major

#

so i took the opportunity to rewrite the config file to allow those numbers and comment it a bit better

unreal summit
#

Anybody familiar with using FTB Quests?

#

I’m writing the quests for Expeditions, but every time I get a batch done, the next time I start the client the quest tree has reverted to the previous version.

neat mango
#

@median sphinx do you do commissions? πŸ‘€

median sphinx
#

no not really

neat mango
#

oh okay

median sphinx
#

what do you want tho