When you launch one project from another using chaining, the system applies environment variables differently depending on whether the project is chained as an Inline chain or a Pass/Fail chain.
For an Inline chain, the steps of the chained project act like they are part of the calling project. If Step 1 in Project 1 calls Project 2, the system runs each step in Project 2, ignoring the Project 2 environment. Each Project 2 step gets the environment variables from its server (but if no server was specified, it uses the server from Project 1 and applies those variables), then the Project 1 environment, then the Step 1 environment, and finally its own step environment setting. In each step, a variable's value is controlled by the last environment to set it.
Chained project server environment (applied initially to set up the server as needed)
The calling project's variables, in a set, with BF_ variable names changed to BF_CALLER.
Chained project server environment (applied a second time in case it was modified by the caller's variables)
Chained project environment
Chained step environment