Jump to content
View in the app

A better way to browse. Learn more.

Obsidian Forum Community

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

God praise this man.  You should get a tutorial going for how to copy vfx, recolor it and add it as a new vfx! This would be huge for this eternal game.

On 12/9/2020 at 1:38 PM, BMac said:

Unfortunately moving or removing existing abilities from the progression table will probably require overriding the entire table. Certainly doable, but might have compatibility problems with other mods that use that table.

You would copy the entire progression table object PT_Wizard into your mod bundle and add Conditional checks to the spells and passives your new subclass should not be allowed. This is how the normal wizard subclasses are done and you should be able to find samples using the IsSubclass script.  To move abilities to new power levels, I would guess you would have to duplicate the table entry for that ability and change it, conditionalizing the new entry for your subclass and the old one for the inverse ("Not" your subclass) and using the VisibilityConditional instead of the normal one to entirely hide the duplicates rather than disabling them.

That PT_Wizard method is the plan. I kind of got lost on the Not-Not and Not:false = True, but I think ive gotten somewhere comparing illusionist restrictions, since the "Illusionist Subclass Reflexive Mirror Passive" is definitely something the illusionist gets approved, and that's listed as "not:false" twice here:
 

"Conditional": {
                                    "Operator": 0,
                                    "Components": [
                                        {
                                            "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                            "Data": {
                                                "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                                                "Parameters": [
                                                    "5aaf47b3-26c5-4e7d-b536-d6dc58c57fcb"
                                                ],
                                                "Flags": "",
                                                "UnrealCall": "",
                                                "FunctionHash": 1231916529,
                                                "ParameterHash": -703546052
                                            },
                                            "Not": false,
                                            "Operator": 0
                                        }
                                    ]
                                },
                                "VisibilityConditional": {
                                    "Operator": 0,
                                    "Components": [
                                        {
                                            "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                            "Data": {
                                                "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                                                "Parameters": [
                                                    "5aaf47b3-26c5-4e7d-b536-d6dc58c57fcb"
                                                ],
                                                "Flags": "",
                                                "UnrealCall": "",
                                                "FunctionHash": 1231916529,
                                                "ParameterHash": -703546052
                                            },
                                            "Not": false,
                                            "Operator": 0
                                        }
                                    ]
                                }

but then Ghostblades, a Conjuration spell, are listed as "Not:true" for two classes:
class one: "5aaf47b3-26c5-4e7d-b536-d6dc58c57fcb" - illusionist
class two: "56db1331-3f31-4af3-9481-9af56ef0002f" - evoker
which also uses a "not:false" to define itself  in ""Note": "PL 0 Auto Grant - Evoker Subclass"

So Ghostblades' use of Not:True appears here:
 

"Components": [
                                        {
                                            "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                            "Data": {
                                                "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                                                "Parameters": [
                                                    "5aaf47b3-26c5-4e7d-b536-d6dc58c57fcb"
                                                ],
                                                "Flags": "",
                                                "UnrealCall": "",
                                                "FunctionHash": 1231916529,
                                                "ParameterHash": -703546052
                                            },
                                            "Not": true,
                                            "Operator": 0
                                        },
                                        {
                                            "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                            "Data": {
                                                "FullName": "Boolean ProgressionTableIsSubclass(Guid)",
                                                "Parameters": [
                                                    "56db1331-3f31-4af3-9481-9af56ef0002f"
                                                ],
                                                "Flags": "",
                                                "UnrealCall": "",
                                                "FunctionHash": 1231916529,
                                                "ParameterHash": -924966531
                                            },
                                            "Not": true,
                                            "Operator": 0
                                        }
                                    ]

and there's a handy dandy comma separating the not:true illusionist UUID code from the not:true evoker UUID code.

which, if im not mistaken, seems to indicate i can just copy in paste/paste one of these not:true patterns beneath my short list using my new school of magic, and presto it's blocked.
block passives probably works the same way as blocking spells.

Create an account or sign in to comment

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.