Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Strive: Conquest

A successor to first Strive For Power game, currently at alpha stage · By Strive4Power

Trying to mod classes

A topic by Sweet_Dreams created Jan 08, 2023 Views: 496 Replies: 5
Viewing posts 1 to 4

I'm trying to make a classes mod and noticed some problems.

First of all, the attribute "conflict_classes" doesn't work; you can be a necromancer and a bishop at the same time. But "has_profession" "check = false" works, so you can't be a paladin and a knight.

Secondly, "has_any_profession" doesn't seem to accept false checks, it will always act as if true (you can still do each profession individually).

Lastly, I can't get "has_status" or "has_effect" to work, which would require the character to have certain temporary effects to be able to pick that class. They give no error, but they're either ignored, or never allow the class to be chosen.

conflict_classes is used for character generation, it doesn't actually prevent taking the classes


true you can either spam has_profession with check false or make a custom valuecheck


has_status works a bit oddly, you need to search for effect tag instead of an effect eg.:

reqs=[{code="has_status",  status="t_e_effect_custom", check=true}]
e_effect_custom = {
type = 'temp_s',
target = 'target',
duration = 4,
tick_event = [variables.TR_TICK],
duration = 'parent',
stack = 1,
name = 'custom',
args = [],
tags = ['t_e_effect_custom'],
buffs = ['b_shell'],
},

so assuming you want to check for an existing effect rather than a custom one you would need to add this tag to it, or make a custom valuecheck to check effects

Right, I've been using variants of

{"code" : "has_status","check" : true,"value" : "celena_bless"}

but can't get it to work. I've tried "has_effect", "e_celena_bless", with or without the check, as both a req and a showupreq, but can't get it to work. Either it doesn't show up, it's always locked, or it's never locked.

Thanks for the information on conflict_class, though, it makes a lot more sense.

(1 edit)

assuming you are using load_tables you just have to load the tags

func load_tables():
    modding_core.load_table(Effectdata.effect_table, celena_tag)
var celena_tag = {
    e_celena_bless = {
        tags = ["t_e_celena_bless"]
    }
}

and then you could use one of the examples below, both do the same

has_status check uses "status" as a value key not "value" you can check it yourself in CharacterClass.gd  func valuecheck

{"code" : "has_status", "check" : true, "status" : "t_e_celena_bless"}
{code = "has_status", check = true, status = "t_e_celena_bless"}
(1 edit)

And just like that, t_e_celena_bless works... despite the fact it appears nowhere in any of the files.

{"code" : "has_status","status" : "t_e_celena_bless","check" : true} still doesn't work as a showupreqs or a reqs. And no, I've used no load tables, the entire mod is one class file.

Now the game throws errors because there's no condition to write "requires a temporary buff" in a class requirement list, but that's pretty harmless.

(1 edit)

basically, you can't make it work if you use ingame mod editor and the .json format, take a look at how sfcrevamp classes/items and tweaks alchemy work

or dm me on discord and i'll walk you through the steps necessary