Skip to content

Conversation

@sovdeeth
Copy link
Owner

@sovdeeth sovdeeth commented Oct 4, 2025

Skript does not allow classinfo registration after startup. I have done it anyway.

This registers a custom type for every struct template, meaning you can now use my struct as a function parameter type, a return type, you can check if {_struct} is a message struct, and struct fields can now be limited to specific structs:

struct test:
    child: other struct
struct other:
    name: string

This, however, requires a breaking change: Creating a new struct instance now requires the word instance to be used!:

set {a} to an other struct instance

Please continue to be careful about when you reload files containing struct definitions. As usual, it is highly encouraged to reload everything that uses a struct after editing its definition. Continuing to use un-updated code may result in undefined behavior and strange bugs. Please report any you encounter, but know they may or may not be able to be fixed.

If you ever change the name of a struct template that's in use, I HIGHLY RECOMMEND restarting your server or at least using /sk reload scripts.

@sovdeeth sovdeeth added the enhancement New feature or request label Oct 4, 2025
@sovdeeth sovdeeth merged commit c12e9da into main Oct 13, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants