So i used
call animation1 from animations
and it worked
Unless you are going to be very careful and organized, I'd avoid adding things like "from animations" yourself.
That "from animations" isn't "from animations.rpy"... it's just "from {uniquenamehere}".
As far as I know, each "from" needs to be unique. The RenPy build process includes a option for "add from clauses to calls" to do all the heavy lifting for you - and it's probably easier to let it keep track of all those unique names, than it is to do it yourself. Just don't add "from .... " yourself... and don't remove them either once the build process has already added them.
Just:
will be fine. Then switched on the option when you build.
The way I understand it, when you load a save game... it does some magic voodoo shit to figure out where you are up to within your game. AnneO'nymous has explained it for me in the past... and I'm sticking with "magic voodoo shit". It then goes to that line of code
(or the nearest previous one it can figure out) and carries on, even if code around it has changed. It has a call/return stack to figure out where to return back to when it hits a return statement. Now in theory, you don't need the "from ...." at all, because of other magic voodoo shit. But to avoid confusion and to make sure the return statement goes back to where it should do... adding all those "from ...." clauses is a good idea - which is why the build process offers to do it all for you.
But as Epaddder says... RenPy really doesn't care where your label statements are or any other commands are. As the game starts, it loads everything in and sort it all out. That means you're fine with a single script.rpy or lots of separate .rpy files all over the place in different subfolders.
You don't even need a script.rpy file. What RenPy is looking for is a "label start:" statement. If that exists in wibble.rpy... that's where your game will start.
That's pretty much the reason why you can put "call my_label" in any .rpy file and "label my_label:" in any other.