Permanent States

Help spread the word!Share on FacebookShare on TumblrTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditFlattr the author

This script adds “permanent states” (perma-states) to your game. A perma-state is just a state, except they are not removed upon death (or other state-clearing conditions).

A permastate is useful for managing features on your actors, since you can control which features will be applied to your actors using event commands and you can remove them when needed.

Download

Script: download here

Usage

Note-tag a state with

<permastate>

And it is now a permanent state. All features on the state will be transferred to the actor as long as the state is in effect.

Help spread the word!Share on FacebookShare on TumblrTweet about this on TwitterShare on Google+Share on LinkedInShare on RedditFlattr the author

You may also like...

31 Responses

  1. Sansa Starling says:

    Script description says “A perma-state is just a state, except they are not removed upon death (or other state-clearing conditions).” But if they are forced to be invisible, this is not true. From looking at the code, it seems you have made a great effort to make permastates a separate class of object, rather than the simple modification implied by the script’s description.

    Why would you force them to be invisible anyway? If the developer wants the state to be invisible, the developer can choose to give the state no icon. That is the usual method, isn’t it?

  2. Druaron says:

    Hi Hime, sorry for this, as I see this was posted 3 years ago, but I have a question about this. Could this be easily modified for make the permastates to be shown as the regular states? As soon as I make an existing state “permanent” I can’t see it in the state window nor anywhere.

  3. Anonymous says:

    This will be useful for a Toad or Mini status.

  4. nadiya2000 says:

    I have a problem, When people died while in different form, the transform state has been removed so that means they turned back to normal form. I also used , It’s dosen’t work for me. Help.

  5. Wanderain says:

    I will get a demo sent to you soon. But to be clear, this isn’t just a weapon with a permastate added to it. This is a weapon that has no additional attributes…that comes from the Gem. The gem gets put into the weapon (like slots in many action rpg’s). The gem is what causes the permastate. The results work correctly, but the state is not disengaged if I sell either the weapon or the gem, which without either in the equation, the permastate should not be present.

  6. Wanderain says:

    I am not using any other script to cause the effect, just eventing. I have the common event attached to the item set up that if the item is present in the inventory and the staff is present in the inventory, the permastate takes effect. I have else set to remove the permastate in both those situations…but the permastate doesn’t remove itself. I know that the state needs to be removed by an event to remove it…I believe I provided that event and it still will not remove. Sorry if I am missing something else obvious.

    • Tsukihime says:

      Send me a demo I am unable to reproduce the issue. When I equip a weapon, a common event will add a permastate. When the weapon is no longer equipped, the common event will remove the permastate (using a simple if/else structure). I observe this behavior as expected when I equip and unequip the weapon.

  7. Wanderain says:

    I was coming here to report the same issue. The permastates seems to take issue with being used with any game that was a ‘save game’ before the script was installed. This is fine for anyone starting a new game, but for a game developer to get kicked back to the beginning is a let down. Don’t get me wrong, I love the script and many other that you do, but is there a way for this script to allow the playing of a previously saved game? Cheers.

    • Wanderain says:

      Now I have a bug as well. I have it set up that the items (gems) apply permastates if they are attached to a weapon (jewel staff). The permastate is successfully added to the actor when the gem is attached. However I cannot disengage the permastate when either the gem or the jewel staff is no longer in the inventory or equipped…so the permastate stays even if the items that produce the effect are not present. I believe I have the conditionals for it set up correctly so perhaps you can think of a different reason it is doing this. Thanks in advance.

      • Tsukihime says:

        States are not features: they don’t disappear once the equipped object is gone. Effects explicitly adding a state are not removed automatically. I don’t know what scripts you’re using to add this effect but it is up to your script to remove any added effects as well.

  8. Maliki79 says:

    Hey there Tsukihime! I have found a possible bug in this script.

    It reads: NoMethodError occured.
    undefined method ‘collect’ for NilClass

    I have no idea what to do to fix this.
    Help, please.
    Thank you

    • Tsukihime says:

      I am not sure what is causing it either. I have moved some lines around. You will need to figure out whether it is a script compatibility issue, or provide more details how to reproduce it (preferably in a blank project with only this script)

      • Maliki79 says:

        I’m all over your site today! The problem was that I needed to start a fresh game. It’s working fine now. Thanks!

  9. Daniel says:

    This is great!
    It’s like a passive skill kind of thing! Good job, I can see this being amazingly useful!

  1. June 17, 2015

    […] Permanent States by Tsukihime / […]

  2. October 6, 2015

    […] Permanent States par Tsukihime / […]

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax