Mafia Theme Checker

Discussion in 'Review' started by IceKirby, Jul 4, 2012.

  1. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    I started working on a new mafia checker for Mafia themes, since the other one is outdated (and Lamperi had asked me if I want to work on a new one).

    So here's it, the beta version of the new Mafia Checker: http://icekirby.github.io/PO-stuff/mafiachecker/

    Please test it with whatever themes you want and report any errors you find here. If someone want to work on a better visual for the page, I'll be grateful :3
    Edit: Now with a better (but still simple) visual. Thanks, Zzyzx Road.

    When reporting an error, please make sure that:
    1. It's really an error in the Mafia Checker, not in your theme (AKA the feature pointed by the mafia checker is working properly).
    2. Post the error messages you got and the theme code.
    3. If you get a red error message, you can ignore all the steps above.
    4. Don't report if you get a "Syntax error, Malformed JSON" message. Fix your code in JSONlint before trying the Mafia Checker.
     
    Last edited: Jun 8, 2013
    Yttrium likes this.
  2. Samzy

    Samzy Member

    Joined:
    May 3, 2012
    Messages:
    35
    Likes Received:
    0
    Wow Rice Job there.
    It's really good at picking up errors, found this in my dbz theme:
    An invalid role "convertmsg" was found in role buu's "newRole: convertmsg" attribute for night action "convert".
    Role buu's attribute "newRole: convertmsg" for night action "convert" must be a valid array.
    An invalid role "silent" was found in role buu's "newRole: silent" attribute for night action "convert".
    Role buu's attribute "newRole: silent" for night action "convert" must be a valid array.
    An invalid role "recharge" was found in role buu's "newRole: recharge" attribute for night action "convert".
    Role buu's attribute "newRole: recharge" for night action "convert" must be a valid array.[/HIDE] because I did
    ],
    "convertmsg": "Buu giggles as he holds a piece of candy shaped like ~Old~ in his hand.",
    "silent": false,
    "recharge": 1
    }
    },[/HIDE] instead of
    ]},
    "convertmsg": "Buu giggles as he holds a piece of candy shaped like ~Old~ in his hand.",
    "silent": false,
    "recharge": 1

    },[/HIDE]

    Its also really useful at picking up small errors like "Vote" instead of "vote" and spelling mistakes the normal checkers didn't pick up :P
    It's also useful to know that I did the convert/safeguard right as it takes them into account with it's checks as well.

    I've found no errors with the checker so far, worked on all three of my themes just fine :D
     
  3. Scatterbrain

    Scatterbrain You only live once*

    Joined:
    Jul 5, 2012
    Messages:
    865
    Likes Received:
    4
    Well, I'm a newbie at coding...so, when I put THIS into the box:
    {
    "name": "MW3",
    "author": "matthewbny",
    "summary": "This theme captures the use of the characters of one of the most over-rated (but the author, matthewbny's, favorite game, Call of Duty: Modern Warfare 3. Be careful of Makarov, who can daykill and nightkill, and his Russian posse. Created by matthewbny, scripting template taken from Zeromare and Cheezeburgar's Music Mafia theme.",
    "sides": [
    {
    "side": "village",
    "Translation": "Delta/Task Force 141",
    "winmsg": "The combined forces of good regain dominance over the world. Congratulations ~Players~, this is definitely one for the books."
    },
    {
    "side": "mafia1",
    "Translation": "Makarov's Posse",
    "winmsg": "And the world bows to the commands of Makarov. Well done ~Players~."
    },
    "roles": [
    {
    "role": "miller",
    "translation": "Shepherd",
    "side": "village",
    "help": "A general with a strong hatred for Makarov, you will stop at nothing to kill him, thus why you are inspected as the enemy. To help get rid of people faster and pave the road to Makarov's death, you have a vote that counts a +2.",
    "actions": {
    "inspect": {
    "revealAs": "daykiller"
    },
    "vote": 2,
    "startup": "role-reveal"
    }
    },
    {
    "role": "prettylady",
    "translation": "Frost",
    "side": "village",
    "help": "Sgt. Derek Frost, part of the Delta Force. You can /distract with your pretty awesome RPG-7. Though, watch out, distract Makarov and you'll die...",
    "actions": {
    "night": {
    "distract": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 1
    }
    }
    }
    },
    {
    "role": "inspector",
    "translation": "Yuri",
    "side": "village",
    "help": "Betrayer of Makarov, you have an even stronger hatred than that of Captain Price or Shepherd for Makarov! You can inspect one person during the night, using /inspect.": {
    "night": {
    "inspect": {
    "target": "AnyButSelf",
    "common": "Role",
    "priority": 30
    }
    }
    }
    },
    {
    "role": "bodyguard",
    "translation": "Soap",
    "side": "village",
    "help": "Sticking up for your friends, you vow to bodyguard them using /protect. However, if you die, you'll leave whoever you're bodyguarding vulnerable to Makarov and his posse.",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 5
    }
    },
    "startup": "role-reveal"
    }
    },
    {
    "role": "mayor",
    "translation": "Price",
    "side": "village",
    "help": "Captain Price. Ah, the one who shot off Zakhaev's arm with the help of Captain MacMillan. Ahahah, the days. Anyways, because I gave you a very entertaining flashback, your vote counts as 5! ",
    "actions": {
    "vote": 5
    }
    },
    {
    "role": "spy",
    "translation": "Grinch",
    "side": "village",
    "help": "What chimney did you hop down last Christmas? Woops, wrong Grinch. Anyways, you get hax on tangoes.",
    "actions": {
    "hax": {
    "inspect": {
    "revealTeam": 0.35,
    "revealPlayer": 0.15
    },
    "kill": {
    "revealTeam": 0.4,
    "revealPlayer": 0.2
    },
    "protect": {
    "revealTeam": 0.3,
    "revealPlayer": 0.1
    }
    }
    }
    },
    {
    "role": "villager",
    "translation": "Private",
    "side": "village",
    "help": "You left your weapons thinking the war has ended. Oh well. Vote to remove people and your team could win, because you are needed. Obviously.",
    "actions": {}
    },
    {
    "role": "samurai",
    "translation": "Sandman",
    "side": "village",
    "help": "Sandman, they daykiller of Delta Force. Try using /kill during the Standby phase. Just...whatever you do...don't kill your teammates.",
    "actions": {
    "standby": {
    "kill": {
    "target": "AnyButSelf",
    "msg": "Air support readied a Predator Missle. You can now use /kill to blow up someone!",
    "killmsg": "Sandman used his Predator Missile and it exploded nearby ~Target~'s area!
    }
    }
    }
    },
    {
    "role": "vigilante",
    "translation": "Truck",
    "side": "village",
    "help": "Ally of Delta, you can use /kill during the night with the aid of Grinch!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 18
    }
    }
    }
    },
    {
    "role": "daykiller",
    "translation": "Makarov",
    "side": "mafia1",
    "help": "A cocky self-conflicted bastard, you have a strong hatred of Price. Use /kill during the day twice to kill. ",
    "actions": {
    "standby": {
    "kill": {
    "target": "AnyButTeam",
    "msg": "You can kill now using /kill (name) !",
    "killmsg": "Using his .44 Magnum, the pistol's bullet rips through ~Target~'s chest, causing an instant death!"
    "limit": 2
    },
    "startup": "team-reveal"
    }
    },
    {
    "role": "nightkiller",
    "translation": "Zakhaev",
    "side": "mafia1",
    "help": "Makarov gave you a fully loaded set of pistols, so they won't be running out anytime soon. Use /kill during the night to kill someone!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 1,
    "broadcast": "team"
    }
    },
    "startup": "team-reveal"
    }
    },
    {
    "role": "evil_bg",
    "translation": "Volk",
    "side": "mafia1",
    "help": "You are the bodyguard of Makarov! Use /protect to protect him from his death!",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButSelf",
    "common": "Role",
    "priority": 150
    }
    },
    "startup": "team-reveal"
    }
    },
    {
    "role": "evilspy",
    "translation": "Russian Soldier",
    "side": "mafia1",
    "help": "You are the spy of Makarov's team! You get hax on the /distract command, though, it's a small chance. You also get to distract people by typing /distract (name).",
    "actions": {
    "night": {
    "distract": {
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 250
    }
    },
    "hax": {
    "distract": {
    "revealTeam": 0.1,
    "revealPlayer": 0.1
    }
    },
    "startup": "team-reveal"
    }
    },
    {
    "role": "poisoner",
    "translation": "Tango",
    "side": "mafia1",
    "help": "You are a tango. You poison, and also ignore distractions. Better not poison Makarov though.",
    "actions": {
    "night": {
    "poison": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 10,
    "limit": 99,
    "count": 6
    }
    },
    "distract": {
    "mode": "ignore",
    "msg": "A Distractor came to you last night, you paid no attention."
    }
    }
    },
    "roles1": [
    "villager",
    "inspector",
    "bodyguard",
    "daykiller",
    "nightkiller",
    "samurai",
    "evilspy",
    "spy",
    "prettylady",
    "evil_bg",
    "mayor",
    "villager",
    ],
    "roles2": [
    "villager",
    "evilspy",
    "poisoner",
    "villager",
    "evilspy",
    "villager",
    "villager",
    "poisoner",
    "villager",
    "evilspy",
    "villager",
    "villager",
    "evilspy",
    "evilspy",
    "villager",
    "villager",
    "villager",
    "villager",
    "evilspy",
    "poisoner",
    ],
    "villageCantLoseRoles": [
    "samurai",
    "mayor",
    "inspector",
    "bodyguard",
    ]
    "killmsg":"~Player~ was killed...he couldn't be successfully revived.",
    "killusermsg":"You were killed!"
    }[/HIDE]
    It said this:
    Error parsing JSON

    JSON-Error: - Syntax error, malformed JSON

    You might want to hone your syntax with JSONLint[/HIDE]
    And I would go to JSONLint, and it would patch my code up with a bunch of random characters. So, what do I do?
     
  4. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    Your code is not a valid JSON. The theme checker will only be able to check your theme if it's a proper JSON code.
     
  5. GreenWater10

    GreenWater10 GreenWater10

    Joined:
    Aug 23, 2011
    Messages:
    296
    Likes Received:
    0
    Good job on that Rice! It must've taken you a long time, and I appreciate all the hard work you put into the new theme checker.

    Anyways, this is probably not an error in the dropbox itself, but I have received this message. Could you explain what this means to me?

    Couldn't check the entire code. The following error has occured: TypeError: Cannot use 'in' operator to search for 'evadeChance' in ignore
     
  6. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    That was a red message, right? Can you show me the code you used when you got that error message? That's probably an error in the checker's scripts (or a bizarre error in the theme code).

    Edit:
    Took 2 days to code it all. Is that long enough for you? XD
     
    Last edited: Jul 6, 2012
  7. Zzyzx Road

    Zzyzx Road Member

    Joined:
    Feb 16, 2012
    Messages:
    572
    Likes Received:
    2
    PO Trainer Name:
    Zzyzx Road
    Rice stronf

    Thanks for the checker, and I hope I can help anyhow
     
  8. waehofen

    waehofen Peace, love, & understanding

    Joined:
    Apr 12, 2012
    Messages:
    258
    Likes Received:
    16
    PO Trainer Name:
    T. E. Lawrence
    well, while you asked for false negatives, of which I neither looked for nor found any, I did come up with a mafia theme that I don't think should have checked out...
    {
    "name": { "real name": "Vanilla", "fake name": "\u236B"},
    "author": { "real author": "waehofen", "fake author": "Fat" },
    "summary": { "name": "forrest gump", "genre": "epic comedy-drama romance", "ratings": [3.13, 3.46, 4, 1.5], "cast": {"forrest gump": "tom hanks", "jenny curran": "robin wright", "lt. dan taylor": "gary sinise", "bubba blue": "mykelti williamson"} },
    "sides": [
    {
    "side": -0.6,
    "translation": ["Billy", "Bob", "Thornton"] [don't know if the previous line would break a game either, that was just for lulz]
    },
    {
    "side": ["m"],
    "translation": { "Name": "Mafia", "Quest": "To killy all the villies", "Favorite color": "blood red" }
    }
    ],
    "roles": [
    {
    "role": "v",
    "translation": ["toothpaste", "pizza", "lamps", "jackie chan"],
    "side": -0.6,
    "help": {"name": "waehofen", "attributes": ["cool", "guy"], "Favorite number": 0.110001000000000000000001},
    "actions": {}
    },
    {
    "role": "m",
    "translation": {"name": ["Austin", "Danger", "Powers"], "sex": "yes please" },
    "side": "m",
    "help": ["is", "on", "the", "way"],
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButTeam",
    "common": "Team",
    "priority": -1.533e-4, [also just because]
    "broadcast": "team"
    }
    },
    "startup": "team-reveal"
    }
    }
    ],
    "roles1": {"type": "object", "error": ["not", "an", "array"]},
    "villageCantLoseRoles": []
    }
    So I haven't actually tried uploading this on a server and maybe it really would work, but I think somewhere, something would break if you tried running this for real. Or maybe a lot of things. Of course if I'm wrong that's kind of embarrassing.
     
    Last edited: Jul 6, 2012
  9. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    lol waehofen, pushing the mafia checker to the limit XD
    I should add some extra type checks just to make sure.

    And Zzyzx made a better page for the mafia checker (at least better than the placeholder version) :3
     
  10. Zzyzx Road

    Zzyzx Road Member

    Joined:
    Feb 16, 2012
    Messages:
    572
    Likes Received:
    2
    PO Trainer Name:
    Zzyzx Road
    Btw, I'm coming up with something interesting as for the checker skin. This is still a placeholder :v
     
  11. Demonic Cake

    Demonic Cake The cake is not a lie...

    Joined:
    Dec 30, 2011
    Messages:
    506
    Likes Received:
    0
    This is so useful. But the font size in the paste box is too big, and zooming out makes the errors font too small. Halp ; ~ ;
     
  12. Lamperi

    Lamperi I see what you did there

    Joined:
    Apr 25, 2010
    Messages:
    2,647
    Likes Received:
    11
    ++++ if possible, we could incorporate common code from mafia checker to Pokemon Online server scripts, so if people do not remember to check with this, the server would run this check too.
     
  13. Darkkis

    Darkkis The Superhero of Mafia

    Joined:
    Jun 23, 2010
    Messages:
    228
    Likes Received:
    0
    "poison": {
    "mode": "ignore",
    "msg": "You can't poison this role!"
    },

    Is this supported? Mafia check says no, but it worked before on Arceus theme.
     
  14. Demonic Cake

    Demonic Cake The cake is not a lie...

    Joined:
    Dec 30, 2011
    Messages:
    506
    Likes Received:
    0
    Mafia check says I can't do evade messages, either, but it hasn't broken Pokemon yet...
     
  15. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    If the error is listed under Minor Errors, it won't break the theme. In Poison Ignore's case, you can have that message in the code, but it'll never appear in the game.

    About Pokemon theme, Kill Evade Messages are supported, but you are putting the "msg" in the wrong place. It shouldn't be under "mode", only under "kill".
     
  16. Fegelein

    Fegelein The Mechanic

    Joined:
    Feb 6, 2012
    Messages:
    1,068
    Likes Received:
    53
    PO Trainer Name:
    Fegelein
    Helped find my bugs in Average Town so it works fine.
     
  17. Demonic Cake

    Demonic Cake The cake is not a lie...

    Joined:
    Dec 30, 2011
    Messages:
    506
    Likes Received:
    0
    ...you said when I asked that they WEREN'T supported...I had them in Orre and they showed up and you said they weren't when I asked x3
     
  18. Tesla Elesa

    Tesla Elesa Almost Quality

    Joined:
    Aug 12, 2011
    Messages:
    530
    Likes Received:
    0
    JSONLint is usually enough, but this will be quite helpful for creating new themes (which I probably should be doing). Yay Rice.

    I checked your theme checker with my FiM theme, and I noticed a few false positives:
    Nothing too big, good job.
     
  19. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    Those are actually errors in your theme. The Fatal Error one is not actually fatal though, so the theme won't bork. Some other minor errors are also pointed as Fatal even though they are not, but I'm too lazy to fix it now.
    Basically, winningSides: "*" shouldn't be an array and poisonattacker is not an attribute (it's a value for mode).

    BTW, I updated the mafia checker (minor stuff, some extra type checks). If you check a theme and get an error message, please try using "Reload (Skip Cache)" and check again before posting an error report.
     
  20. Vepix

    Vepix Feel like a sir

    Joined:
    Mar 26, 2011
    Messages:
    34
    Likes Received:
    0
    This would be cool if I actually made themes, but at least now we (hopefully) have an unexpected error midgame. Good job, Ice!
     
  21. Tesla Elesa

    Tesla Elesa Almost Quality

    Joined:
    Aug 12, 2011
    Messages:
    530
    Likes Received:
    0
    Orly? Well thanks then.
     
  22. Tesla Elesa

    Tesla Elesa Almost Quality

    Joined:
    Aug 12, 2011
    Messages:
    530
    Likes Received:
    0
    Sorry for double posting, but I just remade my old WWII theme, and the theme checker has found a few errors that I don't know how to fix.
    The theme

    Errors:
    Minor errors found in your script:
    Role uk has a "convert" action with an invalid mode: [object Object] (Valid values are ignore).
    Role ussr has a "convert" action with an invalid mode: [object Object] (Valid values are ignore).
    Role ussra has a "convert" action with an invalid mode: [object Object] (Valid values are ignore).
    Role usa's night action "kill" has an extra attribute "initialRecharge".
    Role usa's night action "convert" has an extra attribute "initialRecharge".[/HIDE]
     
  23. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    EvadeChance doesn't work for Convert. And initialrecharge is fully lower case (I need to recheck if it's actually case sensitive)
     
  24. Tesla Elesa

    Tesla Elesa Almost Quality

    Joined:
    Aug 12, 2011
    Messages:
    530
    Likes Received:
    0
    Well that teaches me for trying to use commands that no one else has before. I guess the theme can manage without it, but I hope it will be coded in soon.
     
  25. Fegelein

    Fegelein The Mechanic

    Joined:
    Feb 6, 2012
    Messages:
    1,068
    Likes Received:
    53
    PO Trainer Name:
    Fegelein
    Please sticky this thread.
     
  26. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    Until now, the Mafia Checker focused on detecting issues that could break a theme when played/loaded, so I just updated it with the first "smart" feature: Mafia Checker will now point whenever a role get/avoid hax on an action that doesn't exist in the theme.

    I'd like more suggestions other "smart" features that I could add.
     
  27. Demonic Cake

    Demonic Cake The cake is not a lie...

    Joined:
    Dec 30, 2011
    Messages:
    506
    Likes Received:
    0
    How about something similar for conversions so a role doesn't try to convert into something that doesn't exist?
     
  28. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    That's already included, since it would be a game-breaking error.
     
  29. Demonic Cake

    Demonic Cake The cake is not a lie...

    Joined:
    Dec 30, 2011
    Messages:
    506
    Likes Received:
    0
    Oh, right. Good point, I wasn't thinking straight.

    Kill evasion from a role that doesn't exist, then? Because that could mean a typo, which would then cause a bug in a character being killed by a role they weren't supposed to be killed by.
     
  30. chippymunk

    chippymunk Bran-ed

    Joined:
    Apr 17, 2012
    Messages:
    240
    Likes Received:
    0
    I assume by minor errors this means that they won't crash the game but be an annoyance?
     
  31. TheUnknownOne

    TheUnknownOne Member

    Joined:
    Mar 28, 2011
    Messages:
    988
    Likes Received:
    3
    Last edited: Sep 2, 2012
  32. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    This only made me want to NOT change it. Outdated browsers are bad for everyone :3
    And yeah, I put the scripts in GitHub mainly for anyone to see. Feel free to use it.
     
  33. Crystal Moogle

    Crystal Moogle Ayaya~ Administrator Administrator

    Joined:
    Jul 19, 2010
    Messages:
    3,205
    Likes Received:
    531
    PO Trainer Name:
    Hanako
    I'm using Firefox 17 and it doesn't work :x Though I guess that's my fault. Works fine for me in Chrome though.
     
  34. TheUnknownOne

    TheUnknownOne Member

    Joined:
    Mar 28, 2011
    Messages:
    988
    Likes Received:
    3
    Tested it in Firefox 14 and 15. Both seem to work fine for me.
     
  35. Crystal Moogle

    Crystal Moogle Ayaya~ Administrator Administrator

    Joined:
    Jul 19, 2010
    Messages:
    3,205
    Likes Received:
    531
    PO Trainer Name:
    Hanako
    Just bumping to let people know that this is back.
     
  36. Zzyzx Road

    Zzyzx Road Member

    Joined:
    Feb 16, 2012
    Messages:
    572
    Likes Received:
    2
    PO Trainer Name:
    Zzyzx Road
    bumping more to say I'll start working on the skin again.
     
  37. Tesla Elesa

    Tesla Elesa Almost Quality

    Joined:
    Aug 12, 2011
    Messages:
    530
    Likes Received:
    0
    Is it just me, or does the checker no longer recognize custom convert commands anymore? Just look at all these errors I'm getting:

    FiM
    Minor errors found in your script:
    Role cadance's night action "transform" has an extra attribute "newRole".
    Role cadance's night action "transform" has an extra attribute "canConvert".
    Role cadance's night action "transform" has an extra attribute "convertmsg".
    Role discord's night action "confuse" has an extra attribute "distractmsg".[/HIDE]

    And WWII (which apparently no one wants to critique despite all my massive updates :\).
    Minor errors found in your script:
    Your role "french" has an extra attribute "winningsides".
    Role uk's night action "liberate" has an extra attribute "convertmsg".
    Role uk's night action "liberate" has an extra attribute "silent".
    Role uk's night action "liberate" has an extra attribute "newRole".
    Role ukb's night action "liberate" has an extra attribute "convertmsg".
    Role ukb's night action "liberate" has an extra attribute "silent".
    Role ukb's night action "liberate" has an extra attribute "newRole".
    Role ukp's night action "liberate" has an extra attribute "convertmsg".
    Role ukp's night action "liberate" has an extra attribute "silent".
    Role ukp's night action "liberate" has an extra attribute "newRole".
    Role ukfr's night action "liberate" has an extra attribute "convertmsg".
    Role ukfr's night action "liberate" has an extra attribute "silent".
    Role ukfr's night action "liberate" has an extra attribute "newRole".
    Role ukbfr's night action "liberate" has an extra attribute "convertmsg".
    Role ukbfr's night action "liberate" has an extra attribute "silent".
    Role ukbfr's night action "liberate" has an extra attribute "newRole".
    Role ukpfr's night action "liberate" has an extra attribute "convertmsg".
    Role ukpfr's night action "liberate" has an extra attribute "silent".
    Role ukpfr's night action "liberate" has an extra attribute "newRole".
    Role ukfra's night action "liberate" has an extra attribute "convertmsg".
    Role ukfra's night action "liberate" has an extra attribute "silent".
    Role ukfra's night action "liberate" has an extra attribute "newRole".
    Role germany's night action "invade" has an extra attribute "convertmsg".
    Role germany's night action "invade" has an extra attribute "silent".
    Role germany's night action "invade" has an extra attribute "newRole".
    Role ussra's night action "expel" has an extra attribute "convertmsg".
    Role ussra's night action "expel" has an extra attribute "canConvert".
    Role ussra's night action "expel" has an extra attribute "silent".
    Role ussra's night action "expel" has an extra attribute "newRole".
    Role ussrra's night action "expel" has an extra attribute "convertmsg".
    Role ussrra's night action "expel" has an extra attribute "canConvert".
    Role ussrra's night action "expel" has an extra attribute "silent".
    Role ussrra's night action "expel" has an extra attribute "newRole".
    Role usa's night action "liberate" has an extra attribute "convertmsg".
    Role usa's night action "liberate" has an extra attribute "canConvert".
    Role usa's night action "liberate" has an extra attribute "silent".
    Role usa's night action "liberate" has an extra attribute "newRole".[/HIDE]

    I also don't see what's wrong with the winningSides for the French Resistance:
    Code (text):
    1.  
    2.         {
    3.             "role": "french",
    4.             "translation": "French Resistance",
    5.             "winningsides": [
    6.                 "axis"
    7.             ],
    8.             "side": "allies",
    9.             "help": "Unfortunately the Nazi-run puppet government were not expelled. The Allies do recognize your government as legitimate and you win with them, as well as with the Axis. Resist with all your might with your hax on kills and invasions. If the UK converts you again, you return to France.",
    10.             "actions": {
    11.                 "night": {
    12.                     "inspect": {
    13.                         "target": "AnyButSelf",
    14.                         "common": "Self",
    15.                         "priority": 30
    16.                     }
    17.                 },
    18.                 "hax": {
    19.                     "invade": {
    20.                         "revealTeam": 0.5,
    21.                         "revealRole": 0.1
    22.                     },
    23.                     "kill": {
    24.                         "revealTeam": 0.5,
    25.                         "revealRole": 0.1
    26.                     }
    27.                 },
    28.                 "onDeath": {
    29.                     "convertRoles": {
    30.                         "uk": "ukfr",
    31.                         "ukb": "ukbfr"
    32.                     },
    33.                     "convertmsg": "The French Army escapes across the English Channel, and establishes the French Resistance in the UK."
    34.                 }
    35.             }
    36.         }
     
  38. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    "winningSides", not "winningsides" (case sensitive)
    For the other errors, I'm adding some stuff, so it could be that. I'll take a look and (hopefully) fix that soon.

    Edit: Tested it here, and I got no errors. Try clearing your browser cache (or using private mode, or just fully reloading the page), as it's possible you loaded the page while I was making some changes. I'll continue to look at it in case it's a script error.
     
  39. Shiny Rayquaza

    Shiny Rayquaza Your nightmare!

    Joined:
    Jan 20, 2012
    Messages:
    398
    Likes Received:
    0
    {
    "name": "Unova",
    "author": [
    "Malladus",
    "Rotom"
    ],
    "summary": "Summary needs to be updated - Malladu EDIT: Zorua, Landorus and Kyurem added, and Steel Mafia removed!",
    "sides": [
    {
    "side": "village",
    "translation": "Good Pokemons",
    "winmsg": "The Good Pokemon of Unova (~Players~) have succesfully defended Unova!"
    },
    {
    "side": "kyu",
    "translation": "Kyurem",
    "winmsg": "And so, ~Players~, froze all pokemons from Unova to dead with one mighty cold breathe!"
    },
    {
    "side": "ghost",
    "translation": "Ghost Pokemons",
    "winmsg": "The Ghost Pokemons (~Players~) was to powerful for the living!"
    },
    {
    "side": "kami",
    "translation": "Kami Mafia",
    "winmsg": "The Kami Mafia (~Players~) was to powerful for those silly pokemons"
    },
    {
    "side": "dark",
    "translation": "Illuion Pokemons",
    "winmsg": "The master of Illusions (~Players~) won the battle!"
    },
    {
    "side": "godfather",
    "translation": "Genesect",
    "winmsg": "Genesect (~Players~) was to strong for those silly pokemons!"
    }
    ],
    "roles": [
    {
    "role": "villager",
    "translation": "Patrat",
    "side": "village",
    "help": "All you can do is to /vote during the day!",
    "actions": {}
    },
    {
    "role": "el",
    "translation": "Elgyem",
    "side": "village",
    "help": "A Psychic type pokemon from Unova! Using your psychical power, you can /inspect one person during the night, finding out who he/she is! If you manage to survive until night.6, you can /evolve, and become a Beheyeem!",
    "info": "Can inspect one person during the night. Can evolve to Beheyeem after night 5 Sided with Good Pokemons!",
    "actions": {
    "night": {
    "inspect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 30
    },
    "evolve": {
    "canConvert": [
    "el"
    ],
    "newRole": "beh",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 55,
    "command": "convert",
    "initialrecharge": 5,
    "convertmsg": "Elgyem has evolved and is now a Beheyeem!"
    }
    }
    }
    },
    {
    "role": "beh",
    "translation": "Beheeyem",
    "side": "village",
    "help": "You have evolved! You can /inspect two people during the night. Your psychical power can also tell you who can protect!",
    "actions": {
    "hax": {
    "protect": {
    "revealTeam": 0.33,
    "revealPlayer": 0.1
    }
    },
    "night": {
    "inspect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 35,
    "limit": 2
    }
    }
    }
    },
    {
    "role": "jol",
    "translation": "Joltik",
    "side": "village",
    "help": "You are such a cute pokemon. You can /distract one person during the night!",
    "actions": {
    "night": {
    "distract": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 4,
    "distractmsg": "Joltik came to you last night, you where distracted by its cuteness!",
    "teammsg": "Joltik distracted your partner last night, you decided to not ~Action~ that night!"
    }
    }
    }
    },
    {
    "role": "gal",
    "translation": "Galvantula",
    "side": "village",
    "help": "Part bug, and part electric, you can /twave two people during the night, making them unable to move!",
    "actions": {
    "night": {
    "twave": {
    "command": "distract",
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 4,
    "limit": 2,
    "distractmsg": "Galvantula paralyzed you last night, you couldn't move!",
    "teammsg": "Your partner was paralyzed by Galvantula. You decided to not ~Action~ that night!"
    }
    }
    }
    },
    {
    "role": "ferr",
    "translation": "Ferrothorn",
    "side": "village",
    "help": "With your exellent defensive stat, you can /protect one person during the night. In addition you may find out who can distract!",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButSelf",
    "common": "Role",
    "priority": 5,
    "broadcast": "role"
    }
    },
    "hax": {
    "inspect": {
    "revealTeam": 0.25,
    "revealPlayer": 0.1
    }
    }
    }
    },
    {
    "role": "vic",
    "translation": "Victini",
    "side": "village",
    "help": "A small rodent-like Pokemon! Despite the fact that you are a legendary pokemon, you are not evil, like most other legendary pokemon. So you have decided to team up with the good pokemon. Using /kill during the day you can kill one person, you will be revealed when you do so!",
    "actions": {
    "standby": {
    "kill": {
    "target": "AnyButSelf",
    "msg": "Defeat a person with your signature move using /kill [name]:",
    "killmsg": "~Self~ charges up V-create and bashes into ~Target~!"
    }
    }
    }
    },
    {
    "role": "hax",
    "translation": "Haxorus",
    "side": "village",
    "help": "You are kind but can be relentless when defending territory. You challenge foes with tusks that can cut steel. Using /kill during the day you can kill one person. You will not be revealed!",
    "actions": {
    "standby": {
    "defeat": {
    "command": "kill",
    "target": "AnyButSelf",
    "msg": "Type /kill [name] to eliminate a possible bad pokemon:",
    "killmsg": "Haxorus appeared out of nowhere and crushed ~Target~ with Dragon Claw!"
    }
    }
    }
    },
    {
    "role": "mien",
    "translation": "Mienshao",
    "side": "village",
    "help": "A Fighting type pokemon, and the evolved form of Mienfoo! Being a powerful Fighting type pokemon with elegance you can kill one person during the night with /kill [name]! Try not to kill the good pokemons or you will be in trouble (IF you kill to many good pokemons)!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 19,
    "msg": "Mienshao defeated you with Force Palm!"
    }
    }
    }
    },
    {
    "role": "tim",
    "translation": "Timburr",
    "side": "village",
    "help": "Just a tiny pokemon. All you can do is /protect, BUT once you reach night.3 you can /evolve and turn into a Gurdurr!",
    "info": "Can protect one person during the night. Can evolve to Gurdurr at after night 2. Sided with Good Pokemons!",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 5
    },
    "evolve": {
    "canConvert": [
    "tim"
    ],
    "newRole": "gur",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 66,
    "command": "convert",
    "initialrecharge": 3,
    "convertmsg": "Timburr has evolved and is now a Gurdurr!"
    }
    }
    }
    },
    {
    "role": "gur",
    "translation": "Gurdurr",
    "side": "village",
    "help": "You have evolved and is now a Gurdurr! You can /protect TWO people during the night. Also two night later you can /evolve and become a Conkeldurr!",
    "info": "Can protect 2 people during the night. Can evolve to Conkeldurr 2 nights later. Sided with Good Pokemons!",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 5,
    "limit": 2
    },
    "evolve": {
    "canConvert": [
    "gur"
    ],
    "newRole": "con",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 66,
    "command": "convert",
    "initialrecharge": 1,
    "convertmsg": "Gurdurr has evolved and is now a Conkeldurr!"
    }
    }
    }
    },
    {
    "role": "con",
    "translation": "Conkeldurr",
    "side": "village",
    "help": "Finally you have evolved into a Conkeldurr! With a devastating power you can kill TWO people during the night with /kill [name] AND /kill [name2]. You are sided with the Good Pokemons!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 35,
    "msg": "Conkeldurr's overwhelming power brought you down!",
    "limit": 2
    }
    }
    }
    },
    {
    "role": "dw",
    "translation": "Dwebble",
    "side": "village",
    "help": "You are a Dwebble! You are one of the smallest and most overlooked pokemon in Unova, and so your vote count as -3! On the bright side, you avoid kills 20% of the time!",
    "actions": {
    "vote": -3,
    "kill": {
    "mode": {
    "evadeChance": 0.2,
    "msg": "Dwebbel's shell was to strong for you!"
    }
    }
    }
    },
    {
    "role": "cr",
    "translation": "Crustle",
    "side": "village",
    "help": "You are one strong pokemon, being able to carry a big rock your vote is worth 3! Your big shell makes you avoid kills 10% of the time!",
    "actions": {
    "vote": 3,
    "kill": {
    "mode": {
    "evadeChance": 0.1,
    "msg": "Crustle's shell was to strong for you!"
    }
    }
    }
    },
    {
    "role": "spy",
    "translation": "Munna",
    "side": "village",
    "help": "A Psychic type pokemon! Once Night.5 has passed you can /evolve and become a beatiful Musharna! You can also see the future!",
    "actions": {
    "night": {
    "evolve": {
    "command": "convert",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 67,
    "broadcast": "role",
    "newRole": "mush",
    "canConvert": [
    "spy"
    ],
    "convertmsg": "Munna has evolved and is now a Musharna!",
    "initialrecharge": 5
    }
    },
    "hax": {
    "kill": {
    "revealTeam": 0.2,
    "revealPlayer": 0.1,
    "revealRole": 0.05
    },
    "wisp": {
    "revealTeam": 0.15,
    "revealPlayer": 0.05,
    "revealRole": 0.05
    }
    }
    }
    },
    {
    "role": "mush",
    "translation": "Musharna",
    "side": "village",
    "help": "You have evolved! Now your Psychical power has increased, giving you a bigger chance of seeing who is dying and who is getting Wisp'd! Your vote has also increased, and is now worth 2",
    "actions": {
    "hax": {
    "kill": {
    "revealTeam": 0.4,
    "revealRole": 0.1,
    "revealPlayer": 0.15
    },
    "wisp": {
    "revealTeam": 0.4,
    "revealPlayer": 0.1,
    "revealRole": 0.09
    }
    },
    "vote": 2
    }
    },
    {
    "role": "lit",
    "translation": "Litwick",
    "side": "ghost",
    "help": "A little candle like pokemon from Unova, you can /wisp [name] one person during the night. This will make them die 2.nights later from a burn. There is 20% chance of your Wisp missing though! Also, during next night you can /evolve and become a Lampent!",
    "info": "Can wisp one person during the night. Can evolve into Lampent after 1 night. Sided with Ghost Pokemons!",
    "actions": {
    "night": {
    "wisp": {
    "command": "poison",
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 5,
    "poisonDeadMessage": "You died from a burn!",
    "count": 3,
    "failChance": 0.2
    },
    "evolve": {
    "canConvert": [
    "lit"
    ],
    "newRole": "lam",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 66,
    "command": "convert",
    "initialrecharge": 1,
    "convertmsg": "Litwick has evolved and is now a Lampent!"
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "lam",
    "translation": "Lampent",
    "side": "ghost",
    "help": "You have evolved! Using /wisp you can burn one person during the night, (s)he will then die 2 nights later, there is 15% chance of you missing! You also has 10% chance of evading nightkills. Your vote count as -1!",
    "info": "Can wisp one person during the night (has 15% chance of failing). Can evolve and become a Chandelure. Has 10% chance of evading nightkills. Vote count as -1. Sided with Ghost Pokemons",
    "actions": {
    "vote": -1,
    "kill": {
    "mode": {
    "evadeChance": 0.1,
    "msg": "Lampent was hidden in the dark night!"
    }
    },
    "night": {
    "evolve": {
    "command": "convert",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 21,
    "newRole": "chan",
    "canConvert": [
    "lam"
    ],
    "convertmsg": "Lampent has evolved and is now a Chandelure!"
    },
    "wisp": {
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 10,
    "command": "poison",
    "broadcast": "team",
    "failChance": 0.15,
    "poisonDeadMessage": "You were hurt by your burn, and fainted!"
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "chan",
    "translation": "Chandelure",
    "side": "ghost",
    "help": "You have evolved and is now a Chandelure! Using /wisp you can burn TWICE during the night. There is 5% chance of wisp missing, and your target will die two nights later. You also got 35% chance of evading nightkills!",
    "actions": {
    "kill": {
    "mode": {
    "evadeChance": 0.35,
    "msg": "Chandelure avoided your kill"
    }
    },
    "night": {
    "wisp": {
    "command": "poison",
    "limit": 2,
    "poisonDeadMessage": "You died from a burn!",
    "count": 3,
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 20
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "gol",
    "translation": "Golurk",
    "side": "ghost",
    "help": "You are the powerful Ghost Pokemon Golurk! You can /punch one person during the night, defeating them with your powerful Shadow Punch. You can also /protect one of your fellow Ghost Pokemon. You ignore any distractors!",
    "info": "Can punch one person during the night. Can protect one person during the night. Ignores all distractors. Sided with Ghost Pokemons!",
    "actions": {
    "night": {
    "protect": {
    "target": "AnyButRole",
    "common": "Self",
    "priority": 6
    },
    "punch": {
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 14,
    "broadcast": "team",
    "command": "kill",
    "msg": "Golurk's powerful Shadow Punch finished you!"
    }
    },
    "distract": {
    "mode": "ignore",
    "msg": "~Distracter~ came to you last night, but they were so small that you didn't even see them."
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "cof",
    "translation": "Cofagrigus",
    "side": "ghost",
    "help": "The coffin pokemon! You pretend to be elaborate coffins to teach lessons to grave robbers, and your body is covered in shining gold. Using /curse [name] you can curse one person during the night. He/She will die the next night. There is 10% chance of curse missing!",
    "info": "Can curse one person during the night (10% chance of missing). Sided with Ghost Pokemons!",
    "actions": {
    "night": {
    "curse": {
    "command": "poison",
    "target": "AnyButTeam",
    "common": "Role",
    "priority": 20,
    "broadcast": "role",
    "poisonDeadMessage": "You died from Cofagrigus' curse!",
    "failChance": 0.1
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "thun",
    "translation": "Thundurus",
    "side": "kami",
    "help": "As the Electric/Flying type pokemon of the Kami Trio, you can /twave one person during the night, making him/her unable to do anything that night, your ability Prankster makes you move before any other pokemon! You can also /kill one person during the night, but you share this with your brother, Tornadus!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButTeam",
    "common": "Team",
    "priority": 17,
    "msg": "Thundurus defeated you!",
    "broadcast": "team"
    },
    "twave": {
    "command": "distract",
    "target": "AnyButTeam",
    "common": "Self",
    "priority": 1,
    "distractmsg": "You where paralyzed by Thunder-wave, you couldn't move that night!",
    "teammsg": "Your partner was paralyzed by Thundurus, you decided to not ~Action~ that night!"
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "tor",
    "translation": "Tornadus",
    "side": "kami",
    "help": "The only pure Flying type pokemon! Using /kill you can kill one person, but you share a kill with your brother Thundurus!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButTeam",
    "common": "Team",
    "priority": 17,
    "msg": "Tornadus defeated you!",
    "broadcast": "team"
    }
    },
    "startup": "team-reveal-with-roles"
    }
    },
    {
    "role": "landorus",
    "translation": "Landorus",
    "side": "kami",
    "help": "The fertility god! Using /kill at night you can eliminate a enemy players, this is shared with your team however. Your vote is worth 3, due to being feared among the other pokemons, and once during the entire game you can /expose at daytime, revealing the role of your target, not revealing yourself naturally!",
    "actions": {
    "vote": 3,
    "night": {
    "kill": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 19
    }
    },
    "standby": {
    "expose": {
    "target": "AnyButSelf",
    "msg": "You can type /expose [name] to reveal someone's role!",
    "exposemsg": "Landorus let's out a roar, and yells out: ~Target~ IS THE ~Role~!",
    "recharge": 9999
    }
    }
    }
    },
    {
    "role": "zorua",
    "translation": "Zorua",
    "side": "dark",
    "help": "Aww, you are the cute pokemon Zorua, but in all the chaos you got away from your mother, and now you must try and find here. Type /inspect [name] to find out the identity of that person. You have got 30% chance of evading daykill, and being so cute your vote is worth 50, meaning no one can vote you out!",
    "info": "Can inspect one person during the night. Got a 30% chance of evading daykills.Vote count as 50. Sided with Illusion pokemons!",
    "WinIfDeadRoles": ["hax","vic","gol","mien","con","landorus","thun","tor","cof","lam","lit","chan","gene","black-k","black-w","kyurem"],
    "actions": {
    "vote": 50,
    "daykill": {
    "mode": {
    "evadeChance": 0.05
    }
    },
    "night": {
    "inspect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 30
    }
    }
    }
    },
    {
    "role": "zoro",
    "translation": "Zoroark",
    "side": "dark",
    "help": "Master of Illusion. Being capable of creating illusions, many people fear you. Using Night Slash you can /slash one pokemon during the day...you will not be revealed when you do so. Also try and see if you can your little baby!",
    "actions": {
    "standby": {
    "slash": {
    "command": "kill",
    "target": "AnyButSelf",
    "msg": "/slash one person now. You will not be revealed:",
    "killmsg": "Zoroark slashed ~Target~ to death with Night Slash!"
    }
    }
    }
    },
    {
    "role": "gene",
    "translation": "Genesect",
    "side": "godfather",
    "help": "Over 300 million years ago, you was feared as the strongest of hunters. Now you have been modified by Team Plasma, and is capable of killing once during the night AND once during the day with /kill...You will NOT be revealed when you do so!",
    "actions": {
    "night": {
    "kill": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 20,
    "msg": "Genesect destroyed you...",
    "limit": 1
    }
    },
    "distract": {
    "mode": "ChangeTarget",
    "hookermsg": "You tried to stop Genesect, but where killed instead!",
    "msg": "~Distracter~ came to stop you, but you was to powerful for that weakling!"
    },
    "avoidHax": [
    "kill"
    ],
    "standby": {
    "kill": {
    "target": "AnyButSelf",
    "msg": "Kill now with /kill. You will not be revealed:",
    "killmsg": "~Target~ was hit by a powerful beam,that came out of nowhere. Genesect lets out a evil laughter!"
    }
    }
    }
    },
    {
    "role": "white-k",
    "translation": "White Kyurem",
    "side": "kyu",
    "WinningSides": [
    "kami",
    "kyu"
    ],
    "help": "You have melted your gens with Reshiram, and is now more powerful than before! Type /inspect during the night to find out the identity of another person. During the day you can type /burn to kill a enemy with your signature move, Ice Burn...you will not be revealed. You win the game with the Kami Mafia or by yourself!",
    "info": "Can inspect one person during the night. Can burn one person during the day. Wins the game with Kami Mafia or by itself!",
    "actions": {
    "night": {
    "inspect": {
    "target": "AnyButSelf",
    "common": "Self",
    "priority": 55
    }
    },
    "standby": {
    "burn": {
    "command": "kill",
    "target": "AnyButSelf",
    "msg": "Type /burn [name] to kill an enemy:",
    "killmsg": "The White Kyurem used Ice Burn, burning ~Target~, leaving nothing but chaos behind"
    }
    }
    }
    },
    {
    "role": "black-k",
    "translation": "Black Kyurem",
    "side": "kyu",
    "help": "You have changed into the legendary Black Kyurem and is now stronger then before. Using /freeze you can kill an enemy during the night. You can also protect yourself during the night, do so with /protect [yourself]. You win the game with the Ghost Mafia or by yourself!",
    "actions": {
    "night": {
    "protect": {
    "target": "OnlySelf",
    "common": "Self",
    "priority": 5
    },
    "freeze": {
    "command": "kill",
    "target": "AnyButTeam",
    "common": "Team",
    "priority": 10,
    "broadcast": "team",
    "msg": "Aqua Leader Archie defeated you with Kyogre!"
    }
    },
    "distract": {
    "mode": "ignore",
    "msg": "The ~Distracter~ came to you last night, you ignored her, and went on with killing your intended target! "
    },
    "startup": "team-reveal"
    }
    },
    {
    "role": "kyurem",
    "translation": "Kyurem",
    "side": "kyu",
    "help": "You are the legendary pokemon Kyurem! With your signature move, glaciate, you can /glaciate one person during the night, that person will die immediately. Also during the next night you can choose to transform into Black Kyurem with /black [yourself] and getting the ability to kill and self-protect, and winning with The Ghost Pokemon or by yourself. You can become the White Kyurem with /white [yourself] which gives you a inspect and a unrevealed daykill, and the ability to win with the Kami Mafia or by yourself!",
    "actions": {
    "night": {
    "glaciate": {
    "command": "kill",
    "target": "AnyButSelf",
    "common": "Role",
    "priority": 25,
    "broadcast": "team",
    "msg": "Kyurem killed you with glaciate!"
    },
    "black": {
    "command": "convert",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 55,
    "newRole": "black-k",
    "canConvert": [
    "kyurem"
    ],
    "initialrecharge": 2,
    "convertmsg": "Kyurem has melded its genes with those of a Zekrom, and has become the legendary Black Kyurem!"
    },
    "white": {
    "command": "convert",
    "target": "OnlySelf",
    "common": "Self",
    "priority": 55,
    "newRole": "white-k",
    "canConvert": [
    "kyurem"
    ],
    "initialrecharge": 2,
    "convertmsg": "Kyurem has melded its genes with those of a Reshiram, and has become the legendary White Kyurem!"
    }
    },
    "startup": "team-reveal-with-roles"
    }
    }
    ],
    "roles1": [
    "ferr",
    "el",
    "jol",
    "tor",
    "zoro",
    "villager",
    "villager",
    "tor",
    "villager",
    "villager",
    "lit"
    ],
    "roles2": [
    "ferr",
    "el",
    "jol",
    "gol",
    "cr",
    "dw",
    "lit",
    "kyurem",
    "landorus",
    "thun",
    "villager",
    "villager",
    "villager",
    "spy",
    "mien",
    "tor",
    "zoro",
    "vic",
    "gol",
    "landorus",
    "villager",
    "villager",
    "vic",
    "zoro"
    ],
    "roles3": [
    "ferr",
    "gal",
    "el",
    "lit",
    "gol",
    "cof",
    "zoro",
    "zorua",
    "gene",
    "kyurem",
    "hax",
    "landorus",
    "spy",
    "vic",
    "villager",
    "villager",
    "villager",
    "mien",
    "tim",
    "tim",
    "tor",
    "thun",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager",
    "villager"
    ],
    "villageCantLoseRoles": [
    "vic",
    "con",
    "mien",
    "mush",
    "cr",
    "hax"
    ]
    }[/HIDE]

    When i post that code this comes up:

    Your role "zorua" has an extra attribute "WinIfDeadRoles".
    Your role "white-k" has an extra attribute "WinningSides".[/HIDE]
     
  40. IceKirby

    IceKirby A.K.A. RiceKirby

    Joined:
    Apr 26, 2011
    Messages:
    2,176
    Likes Received:
    635
    PO Trainer Name:
    RiceKirby
    Same for winIfDeadRoles.