• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Crazy Hand v1.31 - Character editing program

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Glad to hear you're enjoying the program! c:

I've actually wanted to dive into SFX/GFX scripts for a while now, but I've been trying to polish things I threw in haphazardly before working on anything new. Knowing that a combined GFX/SFX script is the same size and a GFX/SFX script is helpful. I can definitely make a quickie script that has two seperate text fields for GFX and SFX. I would like to add options to them so it's more like hitbox scripts but I'm unfamiliar with the locations of GFX/SFX. I'll do some looking into that later but if you or @ Achilles1515 Achilles1515 know any good starting points it'd be appreciated.

I think I can squeeze in the (simple) combined effects script for the next release though :)
All you need to do is look at Itaru's post. He outlines the DC command which is for combined graphics and sound effects. The only downside is that the graphics are always generated from the center of the body with this command. In order to offset the graphic, you have to use the dedicated graphic event.

But yeah, it's a really nice command.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Tater Tater , I've already begun working on graphics and sound events so don't start them. Also I have a few tips on how we can get around the body state issue and also how to clean up the subscript swapping system you have started. I really like your work so far though.
Don't have time to go into detail atm, hopefully soon.
 
Last edited:

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Ampers Ampers Crazy Hand is very useful. But, according to this video,(http://youtu.be/j4lAgp40Q1g) this program has high flexibility.
So, I think we need hurt bubble maker which makes a simple substance (and graphic effect maker and this command (http://smashboards.com/goto/post?id=10804377))
Can you make it?
I'm glad that you like my program. I don't fully understand what you mean though. Do you mean have a feature that lets you add in graphic effects or hitboxes into a subaction for a move? @ Tater Tater is working on a feature like that right now. It should be available in the next major release of the program.

Itaru, I also have a question for you. This is from your post about melee syntax:
28000000 AAAA0000 0000BB00 CC00DD00 EE00FF00
This is effect format.
A is effect number.
B shifts the effect position along the Y-Axis and C shifts the effect position along the X-Axis.(I don't know Z-Axis.)
D,E,F is extent of x,y,z axis.
(Sometimes,you will see 29380000 or 28D80000 or other one. In this case,effects are generated from somewhere in bodies.It has not been investigated yet.)
What do you mean by "extent" in the x,y,z axis?
I don't know what the difference is between the "position" and "extent"
And also, are you sure that the values for A,B,C,D,E, and F are only one byte?
Or could the form possibly be:
"28000000 AAAA0000 00BBBBCC CCDDDDEE EEFFFF00"?
I think that there have been times that I saw more than just 0's in those spots for graphic effects.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
I've been working on prettying up the GUI for a few hours and wanted to get opinions on it.


Currently, File can be used to open another ISO(Same way as the button in the "other" menu, but more easily accessible) or just close the program. Run allows you to open the ISO you are editing in Dolphin(As always, you cannot make changes to the ISO once Dolphin is running until you close the ISO again).

I mostly want to hear thoughts about changing the character drop down menu to show CSS portraits instead of text names; It's a fairly large change visually.
 

Itaru

MasterGanon
Joined
Jun 25, 2014
Messages
279
Location
日本 茨城県
I'm glad that you like my program. I don't fully understand what you mean though. Do you mean have a feature that lets you add in graphic effects or hitboxes into a subaction for a move? @ Tater Tater is working on a feature like that right now. It should be available in the next major release of the program.
hmmm...english is difficult...
What I want is This

Hurtbubble maker
Input
Damage (aa)
X-offset (xx)
Y-offset (yy)
Z-offset (zz)
Size (ss)
Angle (bb)
Knock back Growth(cc)
etc...

Output
2D0000aa sssszzzz yyyyxxxx bbcc...........


Itaru, I also have a question for you. This is from your post about melee syntax:

What do you mean by "extent" in the x,y,z axis?
I don't know what the difference is between the "position" and "extent"
And also, are you sure that the values for A,B,C,D,E, and F are only one byte?
Or could the form possibly be:
"28000000 AAAA0000 00BBBBCC CCDDDDEE EEFFFF00"?
I think that there have been times that I saw more than just 0's in those spots for graphic effects.
Sorry, my post was wrong.
28000000 AAAA0000 BBBBCCCC DDDDEEEE FFFFGGGG

B:Z-offset
C:Y-offset
D:X-offset
E:Range of scatter(about Z-axis)
F:Range of scatter(about Y-axis)
G:Range of scatter(about X-axis)

And,my English is so poor(^_^;
So, I explain with a picture.
If there is a graphic effect which is 28000000 eeee0000 0000yyyy xxxx0000 AAAABBBB, It becomes like this

https://www.dropbox.com/s/sbxboosqtvhrbuk/Photo_1.png?dl=0
 
Last edited:

CeLL

Smash Lord
Joined
Jan 26, 2014
Messages
1,026
Location
Washington
I've been working on prettying up the GUI for a few hours and wanted to get opinions on it.


Currently, File can be used to open another ISO(Same way as the button in the "other" menu, but more easily accessible) or just close the program. Run allows you to open the ISO you are editing in Dolphin(As always, you cannot make changes to the ISO once Dolphin is running until you close the ISO again).

I mostly want to hear thoughts about changing the character drop down menu to show CSS portraits instead of text names; It's a fairly large change visually.
I'm also using CSS icon for something. In the game they are displayed over a background. I can't rip it from Dolphin but I made a picture you can overlay the icons on top of to make it look like on the CSS. http://imgur.com/a/dIENq I also uploaded my Sheik icon that you can use if you want (the text is a little funky but I think it's decent other than that).
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
@ Tater Tater , interface looks great :D

also, unrelated, but does anyone know where both character-specific and general article hitboxes are located? it would be nice to be able to change things like the hitboxes for lasers, or din's fire, or ness' pk flash, etc., but I can't seem to find that stuff D:

also, are there any plans to add special move interrupt editing capabilities? sounds like @DRGN had plans to work on a program that would potentially do this but if I'm understanding correctly, the locations in the dol for special move interrupts never changes, so there would be no need for any additional complex dol editing capabilities. not exactly sure what DRGN's plans were but I think a feature like that would fit in well here. being able to modify interrupts, along with the ability to rearrange stuff within a move as it looks like you guys have already implemented, would be huge
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
@ Tater Tater , interface looks great :D

also, unrelated, but does anyone know where both character-specific and general article hitboxes are located? it would be nice to be able to change things like the hitboxes for lasers, or din's fire, or ness' pk flash, etc., but I can't seem to find that stuff D:

also, are there any plans to add special move interrupt editing capabilities? sounds like @DRGN had plans to work on a program that would potentially do this but if I'm understanding correctly, the locations in the dol for special move interrupts never changes, so there would be no need for any additional complex dol editing capabilities. not exactly sure what DRGN's plans were but I think a feature like that would fit in well here. being able to modify interrupts, along with the ability to rearrange stuff within a move as it looks like you guys have already implemented, would be huge

I've been working hard trying to figure out exactly how projectiles work, and it's not an intuitive design haha...

There's lines of code for generate article which are present in most moves that summon projectiles, but the moves seem to work exactly the same even when you remove the generate article script. Ditto with continuation control/autocancel.

The only thing that seems to be REQUIRED to bring out a projectile is a line of hex that is formatted as so: (#0 00 00 00) where # has typically been 6, but I have seen 9 as well.

IIRC, Character-specific projectile data is stored in the character's file, while more common projectile data/items/other such things are stored in PlCo.dat

I'll be investigating how projectiles work as I continue with GUI enhancements/other features.

And I don't know exactly what you mean by special move interrupts. Do you mean being able to edit things such as L-canceling?
 
Last edited:

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Itaru Itaru ,
I understand that English is not your first language, it is okay.
Is this what you mean:

this lets you edit damage, size, angle, etc...
You can find this display in Crazy Hand whenever you view a subaction with a hitbox in it.

When you are done editing you can press save and it will update it for you.
If you want to see the hex values though, you can go into the "Other" menu and check "use raw values".
Then if you go back where you were before it will display like this:

Is this what yo were asking for or am I still misunderstanding you?


And thank you for explaining the graphic effect to me, I understand it now.






@ Tater Tater ,
Looks pretty good. So did you make custom graphics for the characters that don't have an icon in game, like the hands,wireframes, etc...?
I'm really not a big fan of how much white space it creates up top due to the size difference of the image and the other drop down menu. I'm not really sure what kind of workaround there would be for that. I really liked how compact everything was.
I also have the same thoughts about the up and down arrows on events you added to shift them up or down. Although I think that could easily be fixed by having them side by side. I just think that would look a lot cleaner.
What do you think?



And one last note:
I'm sorry that as of late I really have not been contributing much to this project. I've been having a long week... but I am now on spring break for this next week and I should be able to work on this project again.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
@ Tater Tater ,
Looks pretty good. So did you make custom graphics for the characters that don't have an icon in game, like the hands,wireframes, etc...?
I'm really not a big fan of how much white space it creates up top due to the size difference of the image and the other drop down menu. I'm not really sure what kind of workaround there would be for that. I really liked how compact everything was.
I also have the same thoughts about the up and down arrows on events you added to shift them up or down. Although I think that could easily be fixed by having them side by side. I just think that would look a lot cleaner.
What do you think?



And one last note:
I'm sorry that as of late I really have not been contributing much to this project. I've been having a long week... but I am now on spring break for this next week and I should be able to work on this project again.

Yeah, I made custom icons for all the characters that didn't have one by default. Thanks to @ CeLL CeLL for the Sheik icon, it looks nicer than mine did :)

The white space did bother me too; I plan to move the options menu back to its original location (Where it was placed by default when the characters menu listed their names instead of icons) and see how that looks. There'll still be a good amount of white space in between the two, but it can always be filled in with something later if we don't like it.

I'll move the up/down arrows so they are side by side; I agree with you that they look better like that.

And no problem dude, real life happens to us all haha. I've been fairly busy lately as well.
 

CeLL

Smash Lord
Joined
Jan 26, 2014
Messages
1,026
Location
Washington
Yeah, I made custom icons for all the characters that didn't have one by default. Thanks to @ CeLL CeLL for the Sheik icon, it looks nicer than mine did :)

The white space did bother me too; I plan to move the options menu back to its original location (Where it was placed by default when the characters menu listed their names instead of icons) and see how that looks. There'll still be a good amount of white space in between the two, but it can always be filled in with something later if we don't like it.

I'll move the up/down arrows so they are side by side; I agree with you that they look better like that.

And no problem dude, real life happens to us all haha. I've been fairly busy lately as well.
DRGN posted some icons in the texture thread recently if you haven't seen them.
DRGN said:
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
@ Tater Tater , truthfully I actually don't know the extent of special move interrupts (ie what all you can actually modify in the dol and how easily), but achilles and Stratocaster talk about it a bit here and then Magus has the general post about interrupts here. I've looked through the post by Magus a few times to understand things but haven't taken the time to actually understand it. the only reason I got a Falcon shine working is because achilles/Stratocaster posted a method for doing so in the posts I linked a moment ago haha
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
double post. @ Itaru Itaru and friends, any idea what the difference is for a graphic effect script that starts with 28 84 00 00, as opposed to the usual 28 00 00 00 ? Doc's fair graphic effect has this. I've not seen it for other graphic effects but I also haven't really been looking. I'll mess around in dolphin and see if anything is immediately noticeable though

edit: just saw this in Itaru's original gfx format post, should have probably checked that beforehand, oops.

Hello everyone,I'm Itaru.

(Sometimes,you will see 29380000 or 28D80000 or other one. In this case,effects are generated from somewhere in bodies.It has not been investigated yet.)
I'm wondering if maybe this just specifies what bone the effect originates from?

nvm that doesn't seem to be it. I got nothin, nvm
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
So, I've made progress in generating projectiles.


Currently, I've figured out where the game defines what is shot from fox/falco's laser, and there will be more to come.

I'll update the details as I learn more.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Nice! That's hilarious. So is that just a mod to his player file?
Yep. It's actually pretty funny how I worked out where the right value was; It was like a nancy drew mystery lol

Long story short I was checking out that page you linked back at the start of this all(About special move attributes) and while mapping out falco's values, I got curious about the "unknown" values that were littered across the page. I figured there might be something to do with projectiles nestled in there(And there were properties for the laser itself as well)

I found this site by chance a while back while looking for a debug menu code and saw that it had an abundance of codes I hadn't seen anywhere else. Including codes that modified what items peach pulled with her down-B, what Staryu attacked with, and what fox/falco shot from their guns.

The list here has hex values for the codes(http://arcentral.net/ssbm/desc/objectmod.html)

Falco's blaster is ID 37.

I noticed that an undefined value (0x3984) Falco's was an integer (55).

So, I took the hexadecimal value of 37 and checked its decimal value...

It was 55.

Then bird crew happened.
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
Currently, I've figured out where the game defines what is shot from fox/falco's laser, and there will be more to come.
I found that in wParam's Scratchpad:

"mewtwo fires bombs
from 802C5090, 0x70
802C5000 some sort of generic "spawn projectile" function?
80147544
POKE 80147538 38C00006"

I didn't test it though.
 

Itaru

MasterGanon
Joined
Jun 25, 2014
Messages
279
Location
日本 茨城県
@ Itaru Itaru ,

Is this what you were asking for or am I still misunderstanding you?
Oh, I see, thanks, I was stupid...

BTW, Do you have the subaction starting points list? (I read this post http://smashboards.com/posts/18528705/ but I don't know about individual subaction)

AND, I discovered a new format which is 94000000 ........
Unfortunately, I don't know length of this format, but,

Character disappears when he use this!!
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
So, I've made progress in generating projectiles.


Currently, I've figured out where the game defines what is shot from fox/falco's laser, and there will be more to come.

I'll update the details as I learn more.
Btw, did you have to be in a match with items enabled in order for Zapdos to come out?

and if you didn't already figure it out, the offset after the projectile ID is the ID of the blaster. So you could have Falco pull out a Zapdos to shoot a Ho-Oh rofl
 

MagicScrumpy

Smash Journeyman
Joined
Feb 25, 2015
Messages
251
Location
Ann Arbor, Michigan
I guess so. What are the implications of that? It sounds like something like that could be useful for something, but I'm just kind of talking the talk.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Oh, I see, thanks, I was stupid...

BTW, Do you have the subaction starting points list? (I read this post http://smashboards.com/posts/18528705/ but I don't know about individual subaction)

AND, I discovered a new format which is 94000000 ........
Unfortunately, I don't know length of this format, but,

Character disappears when he use this!!

Good find, Itaru! :)

A couple notes on this (From my own experience playing around with it)

94 00 00 00 makes the character visible
94 00 00 01 makes the character INvisible

Invisibility only lasts until the animation ends(Although there's a janky workaround for that so you COULD have timed/indefinite invisibility)

Also, I connected the dots on another puzzling bit of data I see frequently in subactions.

A0~AC XX YY ZZ, (AC XX YY ZZ is Marked as generate article? in crazy hand)

These appear to be in-subaction texture change scripts.

Some of this is speculative, as results haven't been entirely consistent and I haven't messed around with it much.

XX is the texture placement to be changed
I'm not entirely sure what YY is to be honest. It seems to vary.
ZZ is the new "ID" for the texture.

An example script, because I'm bad at explaining things:

A0 03 00 02(For Popo, this makes his right eye shut)

04 00 00 0A(A 10-frame timer)

A0 03 00 00(This will make Popo's right eye open again)

Much like invisibility, changes made using this script seem to disappear once the animation is done playing.

Interesting. Because item data is not loaded into the RAM unless the match has items enabled. So it can selectively pull any item's info that it wants. Hmm...
It's a little bit... Jankier than that.

I did have items disabled for the match in Bird Crew. It seems that you can summon any pokemon without items on and it's fine.

However, trying to shoot an octarock(Don't ask) or a flipper/other item that is available in the Item Select screen with items off results in Falco shooting a puff of smoke, which I'd assume is the item being spawned and then despawned because it isn't supposed to be there. But if you put in a value for something that technically IS an item, but not on the item switch(Like Chansey's healing egg) it works just fine.

In addition, It looks like the ID for blaster shots is the offset for what data should be assigned to the projectile, not the whole projectile itself. For instance, I set Falco's blaster shot to be crazy hand's bomb. In-game, Falco shot a laser that behaved as crazy hand's bomb did. You can even pick some of them up and they'll behave (sort of) like an item. Generally the game crashes if you do that, though. My guess is that the game crashes because it's looking for certain bits of data concerning what items should do from the laser shot, but those bits of data are either wrong or not there because it's not really an item.

One last note on laser-items: Successfully spawned items(Such as healing egg) have a lifetime that is the same as the Laser's duration(100 frames by default). EDIT: I forgot that chansey's healing eggs don't stick around very long. It might be a coincidence.
 
Last edited:

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
this is awesome to see. Tater, based on what you said, I assume projectiles like the ray gun lasers or super scope projectiles would work too? also, would falco be able to shoot fox's lasers and vice versa, or could falco shoot link's boomerang, for example?
 

_Liquid_

Smash Cadet
Joined
Apr 28, 2009
Messages
64
Yep. It's actually pretty funny how I worked out where the right value was; It was like a nancy drew mystery lol

Long story short I was checking out that page you linked back at the start of this all(About special move attributes) and while mapping out falco's values, I got curious about the "unknown" values that were littered across the page. I figured there might be something to do with projectiles nestled in there(And there were properties for the laser itself as well)

I found this site by chance a while back while looking for a debug menu code and saw that it had an abundance of codes I hadn't seen anywhere else. Including codes that modified what items peach pulled with her down-B, what Staryu attacked with, and what fox/falco shot from their guns.

The list here has hex values for the codes(http://arcentral.net/ssbm/desc/objectmod.html)

Falco's blaster is ID 37.

I noticed that an undefined value (0x3984) Falco's was an integer (55).

So, I took the hexadecimal value of 37 and checked its decimal value...

It was 55.

Then bird crew happened.
This is really cool! I'd like to try something similar myself. Could you explain what file's offset has the value 37 in hex or where to go in Crazy Hand to find that value? I've looked through all of Falco's files and the start.dol, but I can't find it. I'm not sure if me using 1.02 is making a difference.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
This is really cool! I'd like to try something similar myself. Could you explain what file's offset has the value 37 in hex or where to go in Crazy Hand to find that value? I've looked through all of Falco's files and the start.dol, but I can't find it. I'm not sure if me using 1.02 is making a difference.
Currently, you won't be able to find that value in Crazy Hand. It's a feature that will be available in the next release, however.

The offset is 0x3984 in plfc.dat(Falco's character file). The value will be an integer of 55, which is 37 in hex.
 

_Liquid_

Smash Cadet
Joined
Apr 28, 2009
Messages
64
Currently, you won't be able to find that value in Crazy Hand. It's a feature that will be available in the next release, however.

The offset is 0x3984 in plfc.dat(Falco's character file). The value will be an integer of 55, which is 37 in hex.
That's weird. I'm looking at the file right now and the byte at that offset has a value of 00 for me. In both my 1.02 and 1.00 versions. Here's a screencap:
http://i.imgur.com/DLvfp8l.png

Any idea where the difference is coming from?

EDIT: I changed the 37 in the picture at 0x3987, Zapdos appeared with a neutral b, but crashed the game. Not sure if that was because it was on Dolphin.
 
Last edited:

z8h

Smash Rookie
Joined
Jan 12, 2013
Messages
6
I see we can swap moveset animations. Is there a way to swap animations across characters?
 

_Liquid_

Smash Cadet
Joined
Apr 28, 2009
Messages
64
I was able to repeat Tater's same process by looking at the Article Floating Points and Object Modifiers and I found the byte that modfies Fox's laser object. It's the byte at 0x38B4 in PlFx.dat with a value of 36 in hex. Again, my file is off by 3 bytes and so it appears at 0x38B7 for me, still not sure why.

I don't have a video camera but here's a picture of Fox and Falco shooting pokeballs at each other:
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
I was able to repeat Tater's same process by looking at the Article Floating Points and Object Modifiers and I found the byte that modfies Fox's laser object. It's the byte at 0x38B4 in PlFx.dat with a value of 36 in hex. Again, my file is off by 3 bytes and so it appears at 0x38B7 for me, still not sure why.

I don't have a video camera but here's a picture of Fox and Falco shooting pokeballs at each other:
Nicely done c:

I just tried this myself, and I think it's really weird that pokeballs, while being "normal" items, are able to be spawned this way perfectly fine even with items off... But on the plus side, it did confirm my thoughts that the projectile lifetime for fox/falco's blaster will be the lifetime for any items they spawn.
 

_Liquid_

Smash Cadet
Joined
Apr 28, 2009
Messages
64
Nicely done c:

I just tried this myself, and I think it's really weird that pokeballs, while being "normal" items, are able to be spawned this way perfectly fine even with items off... But on the plus side, it did confirm my thoughts that the projectile lifetime for fox/falco's blaster will be the lifetime for any items they spawn.
Ah I was wondering why they were disappearing so fast. Do we know what bytes control the lifetimes for fox and falco's lasers?
 
Last edited:

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
Request: A button in the "other" submenu to export all character files to a folder. I'd like to make backup of the random shuffles I make, and I'm sure people can use them for backup in general.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
Request: A button in the "other" submenu to export all character files to a folder. I'd like to make backup of the random shuffles I make, and I'm sure people can use them for backup in general.
That's a feature I've been wanting to add for a while, too. And additionally features to export individual characters and hopefully import them back into an ISO too. That might be something that @darkside1222 would be able to implement if he was interested and had the time.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
That's a feature I've been wanting to add for a while, too. And additionally features to export individual characters and hopefully import them back into an ISO too. That might be something that @darkside1222 would be able to implement if he was interested and had the time.
Actually, I started working on that today haha. And being able to save individual subactions as well.

EDIT: Saving/loading characters as .DAT files is now complete.
 
Last edited:

MagicScrumpy

Smash Journeyman
Joined
Feb 25, 2015
Messages
251
Location
Ann Arbor, Michigan
I've made a rough first draft of the code that lets you copy over hitbox data; the hard part is finding a way to cleanly integrate it into the whole thing so it doesn't look all weird (I like "copy" and "paste" buttons, but that makes it clunky and weird). I'll have to look into a solution!
 
Top Bottom