A growth curve model written in lavaan and MPLUS as a syntax reference guide. Imagine a latent growth curve on affect across 4 time points. First, lavaan code:

lavaan_string <- '

# Latent intercept and slope factors

intercept_affect =~ 1*affect.1 + 1*affect.2 + 1*affect.3 + 1*affect.4
slope_affect =~ 0*affect.1 + 1*affect.2 + 2*affect.3 + 3*affect.4

# Mean and variance of latent factors

intercept_affect ~~ intercept_affect
slope_affect ~~ slope_affect

# Covariance between latent factors

intercept_affect ~~ slope_affect

# Fix observed variable means to 0

affect.1 ~ 0
affect.2 ~ 0
affect.3 ~ 0
affect.4 ~ 0

# Constrain residual (error) variance of observed variables to equality across time

affect.1 ~~ res_var*affect.1
affect.2 ~~ res_var*affect.2
affect.3 ~~ res_var*affect.3
affect.4 ~~ res_var*affect.4

'

Now the same thing in MPLUS syntax:

mplus_string <- '

! Latent intercept and slope factors
intercept_affect BY affect.1@1 affect.2@1 affect.3@1 affect.4@1;
slope_affect BY affect.1@0 affect.2@1 affect.3@3 affect.4@5;

! estimate mean of latent intercept
[intercept_affect];

! estimate mean of latent slope
[slope_affect]

! estimate variance of intercept
intercept_affect;

! estimate variance of slope
slope_affect;

! covariance between intercept and slope
intercept_affect WITH slope_affect;

! Fix observed variable means to 0 so we can estimate a mean for the latent variable
[affect.1@0 affect.2@0 affect.3@0 affect.4@0];

! constrain estimates of residual variances to be equivalent at each time point
affect.1(res_var); affect.2(res_var); affect.3(res_var); affect.4(res_var);

'

Bo$$^2$$m =)