Charon Posted August 31, 2022 Share Posted August 31, 2022 I'm doing some personal modding for abilities/moves/Pokemon etc. in Rejuv and E19 Reborn, but I'm having trouble finding where I'm supposed to change the actual effects of abilities. The PBS file Abilities.txt is just the text description of abilities instead of the actual data, and I just can't figure out which Script/Data/PBS file would hold those, can anyone tell me? Quote Link to comment Share on other sites More sharing options...
Shinrushi Posted September 3, 2022 Share Posted September 3, 2022 i want to know as well Quote Link to comment Share on other sites More sharing options...
Maverillion Posted September 20, 2022 Share Posted September 20, 2022 I know that there are some abilities that can be edited in battler and battle. But I've wanted to know how to make custom abilities myself as well. Quote Link to comment Share on other sites More sharing options...
leosaurd Posted September 21, 2022 Share Posted September 21, 2022 To make Custom Abilities, you first need to give it a definition in the abiltext.rb file, and an ID in the PBAbilities.rb file - this will create the ability without any effect. To add an effect to ability, you can add it to one of the scripts file. For example, in a Move altering ability, you could add it to PokeBattler_Battler.rb or PokeBattler_Move.rb if you'd like. The Primal Dialga/Palkia mod has a good example, if you'd like to see that. To add it to a Summary display(where you would normally view the pokemon's ability, stats, etc ingame), you would need to edit PokemonSummary.rb. I may be wrong in some of these, but there are many mods that can provide a more clear example than my description. Hopefully, this helps! Good luck with your testing ^_^ 1 Quote Link to comment Share on other sites More sharing options...
Charon Posted September 29, 2022 Author Share Posted September 29, 2022 Hm, at least for the moment probably gonna stick with modifying Pokemon and modifying/adding moves, since those files look just a bit above my hobby-coding paygrade. Gonna take me quite a while to parse out what I want to do and how to code it, even with the wiki helping me figure things out. EDIT: Because it amuses me, here's the list so far of move modifications/new moves: Triple Kick: BP increased to 20 Arm Thrust: BP increased to 25 Comet Punch: BP increased to 25 Power-up Punch: BP increased to 45 Mega Punch: BP increased to 90 Shadow Punch: BP increased to 75 Wild Charge: BP increased to 100 Razor Wind: Type changed to Flying, BP changed to 95, Accuracy changed to 100, now one-turn Poison Tail: Power increased to 60 All Elemental Fangs (including Poison Fang): BP increased to 70 Water Shuriken: BP increased to 20 ##New Moves## Tyrant Fang: Basically just a Dragon-type version of Crunch (signature move of Tyrantrum). "The user clamps down with its’ fangs and savages the target. It may also lower the target's Defense stat." Alpha Screech: 75 BP Dragon-type, Special Sound move, lowers SpAtk. "The user lets loose a deafening scream, proclaiming their superiority to the world. Also lowers target's Sp. Atk" Divebomb: Flying, BP 90, acc 95, “The user soars high into the air and swoops down on the enemy at high speeds.” Shocking Swipe: 80 BP clawing move, basically electric shadow claw. "The user slashes with lightning-infused claws. Critical hits land more easily. May Paralyze target." Quote Link to comment Share on other sites More sharing options...
Reflow718 Posted October 13, 2022 Share Posted October 13, 2022 On 9/29/2022 at 6:32 PM, Charon said: Hm, at least for the moment probably gonna stick with modifying Pokemon and modifying/adding moves, since those files look just a bit above my hobby-coding paygrade. Gonna take me quite a while to parse out what I want to do and how to code it, even with the wiki helping me figure things out. EDIT: Because it amuses me, here's the list so far of move modifications/new moves: Triple Kick: BP increased to 20 Arm Thrust: BP increased to 25 Comet Punch: BP increased to 25 Power-up Punch: BP increased to 45 Mega Punch: BP increased to 90 Shadow Punch: BP increased to 75 Wild Charge: BP increased to 100 Razor Wind: Type changed to Flying, BP changed to 95, Accuracy changed to 100, now one-turn Poison Tail: Power increased to 60 All Elemental Fangs (including Poison Fang): BP increased to 70 Water Shuriken: BP increased to 20 ##New Moves## Tyrant Fang: Basically just a Dragon-type version of Crunch (signature move of Tyrantrum). "The user clamps down with its’ fangs and savages the target. It may also lower the target's Defense stat." Alpha Screech: 75 BP Dragon-type, Special Sound move, lowers SpAtk. "The user lets loose a deafening scream, proclaiming their superiority to the world. Also lowers target's Sp. Atk" Divebomb: Flying, BP 90, acc 95, “The user soars high into the air and swoops down on the enemy at high speeds.” Shocking Swipe: 80 BP clawing move, basically electric shadow claw. "The user slashes with lightning-infused claws. Critical hits land more easily. May Paralyze target." Can you provide info on how these changes were done ? Quote Link to comment Share on other sites More sharing options...
Charon Posted October 15, 2022 Author Share Posted October 15, 2022 On 10/13/2022 at 12:50 AM, Reflow718 said: Can you provide info on how these changes were done ? Literally just modifying the PBS files, copying segments from other moves as needed (or just the move outright). I'll just paste the changes/moves themselves since I don't really care who uses them, just change the number at the front for the new moves as needed for whatever game you're adding them to, and be sure to add them somewhere on the movelists of the pokemon you want them to have if you're not using debug to add them. I also added Meteor Blow to actually have a higher-powered physical fire move that doesn't have recoil, Black Fog purely to have a Special Dark-type attack with a BP above 80 that wasn't a signature move, and Liquid Kunai was just to add another Ninja Thing to Greninja's arsenal. ##Move Changes## Spoiler 70,WILDCHARGE,Wild Charge,0FA,100,ELECTRIC,Physical,100,15,0,00,0,abef,"The user shrouds itself in electricity and smashes into its target. It damages the user." 75,THUNDERFANG,Thunder Fang,009,70,ELECTRIC,Physical,95,15,100,00,0,abef,"The user bites with electrified fangs. It may make the target flinch or paralyze it." 113,ARMTHRUST,Arm Thrust,0C0,25,FIGHTING,Physical,100,20,0,00,0,abef,"The user looses a flurry of open-palmed arm thrusts that hit two to five times in a row." 114,TRIPLEKICK,Triple Kick,0BF,20,FIGHTING,Physical,90,10,0,00,0,abef,"A consecutive three-kick attack that becomes more powerful with each successive hit." 142,FIREFANG,Fire Fang,00B,70,FIRE,Physical,95,15,100,00,0,abef,"The user bites with flaming fangs. It may also burn the target or make it flinch." 178,SHADOWPUNCH,Shadow Punch,0A5,60,GHOST,Physical,0,20,0,00,0,abefj,"The user throws a punch from the shadows. The punch lands without fail." 248,ICEFANG,Ice Fang,00E,70,ICE,Physical,95,15,10,00,0,abef,"The user bites with freezing fangs. It may flinch or freeze the target." 280,MEGAPUNCH,Mega Punch,000,80,NORMAL,Physical,85,20,0,00,0,abefj,"The target is slugged by a punch thrown with muscle-packed power." 281,RAZORWIND,Razor Wind,000,95,FLYING,Special,100,10,0,00,0,befh,"The target is battered with blades of razor-sharp wind. Critical hits land more easily." 319,COMETPUNCH,Comet Punch,0C0,25,NORMAL,Physical,85,15,0,00,0,abefj,"The target is hit with a flurry of punches that strike two to five times in a row." 435,POISONFANG,Poison Fang,006,70,POISON,Physical,100,15,50,00,0,abe,"The user bites the target with toxic fangs. It may also leave the target badly poisoned." 436,POISONTAIL,Poison Tail,005,60,POISON,Physical,100,25,10,00,0,abefh,"The user attacks with its tail. It may poison the target. Critical hits land easier." 601,POWERUPPUNCH,Power-Up Punch,01C,45,FIGHTING,Physical,100,30,100,00,0,abefjm,"Striking opponents makes the user's fists harder. Hitting a target raises the Atk." 608,WATERSHURIKEN,Water Shuriken,0C0,20,WATER,Special,100,20,0,00,1,bef,"The target is hit with throwing stars two to five times. It always goes first." ##New Moves## Spoiler 699,TYRANTFANG,Tyrant Fang,043,80,DRAGON,Physical,100,15,20,00,0,abe,"The user clamps down with its' fangs and savages the target. It may also lower the target's Defense stat." 700,ALPHASCREECH,Alpha Screech,045,50,DRAGON,Special,100,20,100,04,0,befk,"The user lets loose a deafening scream, proclaiming their superiority to the world. Also lowers target's Sp. Atk" 701,SHOCKINGSWIPE,Shocking Swipe,000,80,ELECTRIC,Physical,100,15,0,00,0,abefh,"The user slashes with lightning-infused claws. Critical hits land more easily. May Paralyze target." 702,DIVEBOMB,Divebomb,000,90,FLYING,Physical,100,15,0,00,0,abef,"The user soars high into the air and dives into the opponent at massive speeds." 703,METEORBLOW,Meteor Blow,00A,90,FIRE,Physical,95,10,30,00,0,beg,"The opponent is slammed with a limb with such titanic force the air itself catches fire. May leave the target with a burn." 704,LIQUIDKUNAI,Liquid Kunai,000,80,WATER,Special,95,15,30,00,0,bef,"The user launches a blade of compressed water that explodes when it hits the enemy. This may also make the target flinch." 705,BLACKFOG,Black Fog,000,100,DARK,Special,90,5,0,00,0,bef,"The user condenses its' malicious thoughts into physical form, bathing the enemy in a thick haze of fear and hatred." Quote Link to comment Share on other sites More sharing options...
Reflow718 Posted October 22, 2022 Share Posted October 22, 2022 On 10/15/2022 at 2:03 PM, Charon said: Literally just modifying the PBS files, copying segments from other moves as needed (or just the move outright). I'll just paste the changes/moves themselves since I don't really care who uses them, just change the number at the front for the new moves as needed for whatever game you're adding them to, and be sure to add them somewhere on the movelists of the pokemon you want them to have if you're not using debug to add them. I also added Meteor Blow to actually have a higher-powered physical fire move that doesn't have recoil, Black Fog purely to have a Special Dark-type attack with a BP above 80 that wasn't a signature move, and Liquid Kunai was just to add another Ninja Thing to Greninja's arsenal. ##Move Changes## Reveal hidden contents 70,WILDCHARGE,Wild Charge,0FA,100,ELECTRIC,Physical,100,15,0,00,0,abef,"The user shrouds itself in electricity and smashes into its target. It damages the user." 75,THUNDERFANG,Thunder Fang,009,70,ELECTRIC,Physical,95,15,100,00,0,abef,"The user bites with electrified fangs. It may make the target flinch or paralyze it." 113,ARMTHRUST,Arm Thrust,0C0,25,FIGHTING,Physical,100,20,0,00,0,abef,"The user looses a flurry of open-palmed arm thrusts that hit two to five times in a row." 114,TRIPLEKICK,Triple Kick,0BF,20,FIGHTING,Physical,90,10,0,00,0,abef,"A consecutive three-kick attack that becomes more powerful with each successive hit." 142,FIREFANG,Fire Fang,00B,70,FIRE,Physical,95,15,100,00,0,abef,"The user bites with flaming fangs. It may also burn the target or make it flinch." 178,SHADOWPUNCH,Shadow Punch,0A5,60,GHOST,Physical,0,20,0,00,0,abefj,"The user throws a punch from the shadows. The punch lands without fail." 248,ICEFANG,Ice Fang,00E,70,ICE,Physical,95,15,10,00,0,abef,"The user bites with freezing fangs. It may flinch or freeze the target." 280,MEGAPUNCH,Mega Punch,000,80,NORMAL,Physical,85,20,0,00,0,abefj,"The target is slugged by a punch thrown with muscle-packed power." 281,RAZORWIND,Razor Wind,000,95,FLYING,Special,100,10,0,00,0,befh,"The target is battered with blades of razor-sharp wind. Critical hits land more easily." 319,COMETPUNCH,Comet Punch,0C0,25,NORMAL,Physical,85,15,0,00,0,abefj,"The target is hit with a flurry of punches that strike two to five times in a row." 435,POISONFANG,Poison Fang,006,70,POISON,Physical,100,15,50,00,0,abe,"The user bites the target with toxic fangs. It may also leave the target badly poisoned." 436,POISONTAIL,Poison Tail,005,60,POISON,Physical,100,25,10,00,0,abefh,"The user attacks with its tail. It may poison the target. Critical hits land easier." 601,POWERUPPUNCH,Power-Up Punch,01C,45,FIGHTING,Physical,100,30,100,00,0,abefjm,"Striking opponents makes the user's fists harder. Hitting a target raises the Atk." 608,WATERSHURIKEN,Water Shuriken,0C0,20,WATER,Special,100,20,0,00,1,bef,"The target is hit with throwing stars two to five times. It always goes first." ##New Moves## Reveal hidden contents 699,TYRANTFANG,Tyrant Fang,043,80,DRAGON,Physical,100,15,20,00,0,abe,"The user clamps down with its' fangs and savages the target. It may also lower the target's Defense stat." 700,ALPHASCREECH,Alpha Screech,045,50,DRAGON,Special,100,20,100,04,0,befk,"The user lets loose a deafening scream, proclaiming their superiority to the world. Also lowers target's Sp. Atk" 701,SHOCKINGSWIPE,Shocking Swipe,000,80,ELECTRIC,Physical,100,15,0,00,0,abefh,"The user slashes with lightning-infused claws. Critical hits land more easily. May Paralyze target." 702,DIVEBOMB,Divebomb,000,90,FLYING,Physical,100,15,0,00,0,abef,"The user soars high into the air and dives into the opponent at massive speeds." 703,METEORBLOW,Meteor Blow,00A,90,FIRE,Physical,95,10,30,00,0,beg,"The opponent is slammed with a limb with such titanic force the air itself catches fire. May leave the target with a burn." 704,LIQUIDKUNAI,Liquid Kunai,000,80,WATER,Special,95,15,30,00,0,bef,"The user launches a blade of compressed water that explodes when it hits the enemy. This may also make the target flinch." 705,BLACKFOG,Black Fog,000,100,DARK,Special,90,5,0,00,0,bef,"The user condenses its' malicious thoughts into physical form, bathing the enemy in a thick haze of fear and hatred." Thanks for this, I also got it working, and made some of my own. Now going for more advance is there a way to change the default animations of the "new moves" we created ? Like using animations that's already in the game Quote Link to comment Share on other sites More sharing options...
Charon Posted October 22, 2022 Author Share Posted October 22, 2022 13 hours ago, Reflow718 said: Thanks for this, I also got it working, and made some of my own. Now going for more advance is there a way to change the default animations of the "new moves" we created ? Like using animations that's already in the game I have no idea on modifying animations myself. I usually end up playing with them off most of the time, and I haven't really looked into guides for doing so. Quote Link to comment Share on other sites More sharing options...
Shiiras Posted August 10, 2024 Share Posted August 10, 2024 On 9/20/2022 at 11:00 PM, leosaurd said: To make Custom Abilities, you first need to give it a definition in the abiltext.rb file, and an ID in the PBAbilities.rb file - this will create the ability without any effect. To add an effect to ability, you can add it to one of the scripts file. For example, in a Move altering ability, you could add it to PokeBattler_Battler.rb or PokeBattler_Move.rb if you'd like. The Primal Dialga/Palkia mod has a good example, if you'd like to see that. To add it to a Summary display(where you would normally view the pokemon's ability, stats, etc ingame), you would need to edit PokemonSummary.rb. I may be wrong in some of these, but there are many mods that can provide a more clear example than my description. Hopefully, this helps! Good luck with your testing ^_^ i know i am insanely late to this conversation but do you know if something like this is possible within sword and shield using ryujinx? im working on a lot of modding content in those games and being able to make my own custom abilities would make it a thousand times better Quote Link to comment Share on other sites More sharing options...
XrāzÿJãÿ Posted Monday at 10:15 AM Share Posted Monday at 10:15 AM is there someone who does customized moves? cause I want to edit the code for mat block to increase def and spdef x2 if successful but I'm having no luck. Quote Link to comment Share on other sites More sharing options...
Q-Jei Posted yesterday at 12:31 AM Share Posted yesterday at 12:31 AM 14 hours ago, XrāzÿJãÿ said: is there someone who does customized moves? cause I want to edit the code for mat block to increase def and spdef x2 if successful but I'm having no luck. - Go to the Scripts folder, then find and open the script named "PokeBattle_MoveEffects.rb". - Use Ctrl+F and type the name of the move you want to alter to find the class proper to Mat Block. - Replace the code of the class with the one below. Spoiler class PokeBattle_Move_154 < PokeBattle_Move def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true) if (attacker.turncount!=1) @battle.pbDisplay(_INTL("But it failed!")) return -1 end if attacker.pbOwnSide.effects[PBEffects::MatBlock] @battle.pbDisplay(_INTL("But it failed!",attacker.pbThis)) return -1 end @battle.pbAnimation(@id,attacker,nil) @battle.pbDisplay(_INTL("{1} kicked up a mat to protect its team!",attacker.pbThis)) attacker.pbOwnSide.effects[PBEffects::MatBlock]=true for stat in [PBStats::DEFENSE,PBStats::SPDEF] if attacker.pbCanIncreaseStatStage?(stat,false) attacker.pbIncreaseStat(stat,2,abilitymessage:false) end end return 0 end end - Try to compile your game with RPG Maker to see if something has changed. Don't hesitate to tell me if it worked! 1 Quote Link to comment Share on other sites More sharing options...
XrāzÿJãÿ Posted yesterday at 10:01 AM Share Posted yesterday at 10:01 AM 9 hours ago, Q-Jei said: - Go to the Scripts folder, then find and open the script named "PokeBattle_MoveEffects.rb". - Use Ctrl+F and type the name of the move you want to alter to find the class proper to Mat Block. - Replace the code of the class with the one below. Hide contents class PokeBattle_Move_154 < PokeBattle_Move def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true) if (attacker.turncount!=1) @battle.pbDisplay(_INTL("But it failed!")) return -1 end if attacker.pbOwnSide.effects[PBEffects::MatBlock] @battle.pbDisplay(_INTL("But it failed!",attacker.pbThis)) return -1 end @battle.pbAnimation(@id,attacker,nil) @battle.pbDisplay(_INTL("{1} kicked up a mat to protect its team!",attacker.pbThis)) attacker.pbOwnSide.effects[PBEffects::MatBlock]=true for stat in [PBStats::DEFENSE,PBStats::SPDEF] if attacker.pbCanIncreaseStatStage?(stat,false) attacker.pbIncreaseStat(stat,2,abilitymessage:false) end end return 0 end end - Try to compile your game with RPG Maker to see if something has changed. Don't hesitate to tell me if it worked! thanks man will try it out when I get off work. Quick question.. instead of rgp maker does the debug compiler work? Quote Link to comment Share on other sites More sharing options...
Q-Jei Posted yesterday at 10:06 AM Share Posted yesterday at 10:06 AM 5 minutes ago, XrāzÿJãÿ said: thanks man will try it out when I get off work. Quick question.. instead of rgp maker does the debug compiler work? Surely! I mentioned RPG Maker because I used to compile my game directly from it but you can probably use the debug compiler too! Quote Link to comment Share on other sites More sharing options...
XrāzÿJãÿ Posted yesterday at 10:46 AM Share Posted yesterday at 10:46 AM Quote [Pokemon Rejuvenation 13.5.6] Exception: NameError Message: uninitialized constant PokeBattle_Move_154::PBEffects Battle_MoveEffects:9426:in `pbEffect' Battler:5465:in `block in pbUseMove' PBDebug:4:in `logonerr' Battler:5464:in `pbUseMove' Battler:5961:in `block in pbProcessTurn' PBDebug:4:in `logonerr' Battler:5960:in `pbProcessTurn' Battle:3938:in `block in pbAttackPhase' Battle:3937:in `each' Battle:3937:in `pbAttackPhase' Battle:3532:in `block (2 levels) in pbStartBattle' PBDebug:4:in `logonerr' Battle:3530:in `block in pbStartBattle' Battle:3519:in `loop' Battle:3519:in `pbStartBattle' Field:1200:in `block (2 levels) in pbWildBattle' Field:696:in `pbSceneStandby' Field:1199:in `block in pbWildBattle' Field:1047:in `pbBattleAnimation' Field:1198:in `pbWildBattle' Field:1753:in `pbBattleOnStepTaken' Field:1774:in `pbOnStepTaken' Game_Player:514:in `update' Walk_Run:100:in `update' Scene_Map:104:in `block in update' Okay so I tried is and this is the error message that popped up. I'm doing this to have my own customized BattleBond Greninja. So far Water Shuriken is more powerful and could hit 5 times if i want it to; and Blizzard has infinite accuracy (all i'm missing is for it to freeze more often). After I finish the gimmick for matblock which is +2DEF/SPDEF upon success i'll move on to night slash always criting. A little OP but at least i'll have my personalised Ash-Greninja Quote Link to comment Share on other sites More sharing options...
Q-Jei Posted yesterday at 11:35 AM Share Posted yesterday at 11:35 AM 1 hour ago, XrāzÿJãÿ said: Okay so I tried is and this is the error message that popped up. I'm doing this to have my own customized BattleBond Greninja. So far Water Shuriken is more powerful and could hit 5 times if i want it to; and Blizzard has infinite accuracy (all i'm missing is for it to freeze more often). After I finish the gimmick for matblock which is +2DEF/SPDEF upon success i'll move on to night slash always criting. A little OP but at least i'll have my personalised Ash-Greninja No worries, can you share your script "PokeBattle_MoveEffects.rb" with me in PM? The version of Reborn I use is pretty old (v19.6) and the code has been rewritten meanwhile, so there might be conflict with the code I gave you. Quote Link to comment Share on other sites More sharing options...
XrāzÿJãÿ Posted 22 hours ago Share Posted 22 hours ago 1 hour ago, Q-Jei said: No worries, can you share your script "PokeBattle_MoveEffects.rb" with me in PM? The version of Reborn I use is pretty old (v19.6) and the code has been rewritten meanwhile, so there might be conflict with the code I gave you. It's for Rejuvenation... but I'll pm you when I get off work. Quote Link to comment Share on other sites More sharing options...
Q-Jei Posted 22 hours ago Share Posted 22 hours ago 26 minutes ago, XrāzÿJãÿ said: It's for Rejuvenation... but I'll pm you when I get off work. Ah, okay! So that explains why you encountered incompatibilities. Nevermind, the following code should work properly if I'm not mistaken: Spoiler ################################################################################ # Mat Block ################################################################################ class PokeBattle_Move_154 < PokeBattle_Move def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true) if (attacker.turncount!=1) @battle.pbDisplay(_INTL("But it failed!")) return -1 end if attacker.pbOwnSide.effects[:MatBlock] @battle.pbDisplay(_INTL("But it failed!",attacker.pbThis)) return -1 end @battle.pbAnimation(@move,attacker,nil) @battle.pbDisplay(_INTL("{1} kicked up a mat to protect its team!",attacker.pbThis)) attacker.pbOwnSide.effects[:MatBlock]=true for stat in [PBStats::DEFENSE,PBStats::SPDEF] if attacker.pbCanIncreaseStatStage?(stat,false) attacker.pbIncreaseStat(stat,2,abilitymessage:false) end end return 0 end end 1 Quote Link to comment Share on other sites More sharing options...
XrāzÿJãÿ Posted 13 hours ago Share Posted 13 hours ago 9 hours ago, Q-Jei said: Ah, okay! So that explains why you encountered incompatibilities. Nevermind, the following code should work properly if I'm not mistaken: Hide contents ################################################################################ # Mat Block ################################################################################ class PokeBattle_Move_154 < PokeBattle_Move def pbEffect(attacker,opponent,hitnum=0,alltargets=nil,showanimation=true) if (attacker.turncount!=1) @battle.pbDisplay(_INTL("But it failed!")) return -1 end if attacker.pbOwnSide.effects[:MatBlock] @battle.pbDisplay(_INTL("But it failed!",attacker.pbThis)) return -1 end @battle.pbAnimation(@move,attacker,nil) @battle.pbDisplay(_INTL("{1} kicked up a mat to protect its team!",attacker.pbThis)) attacker.pbOwnSide.effects[:MatBlock]=true for stat in [PBStats::DEFENSE,PBStats::SPDEF] if attacker.pbCanIncreaseStatStage?(stat,false) attacker.pbIncreaseStat(stat,2,abilitymessage:false) end end return 0 end end Bro it works now.. thank you so much man . Now for me to figure out the rest. Thanks so much bro. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.