Hi there,

I’m using DifferentialEquations.jl to simulate collisions between particles. When one particle leaves a defined volume I want to reseed it randomly until a certain number of collisions is reached. My code from last autumn used the solution recommended here, i.e. to pass the number of collisions in the `userdata`

dictionary and update it. This is what my callback function, that is called everytime one particle leaves the volume, looks like:

```
function affect!(integrator)
integrator.opts.userdata[:n_coll] += 1
if integrator.opts.userdata[:n_coll] == integrator.opts.userdata[:n_coll_max]
terminate!(integrator)
else
rᵢₙᵢₜ, vᵢₙᵢₜ = seed_atom_T(integrator.opts.userdata[:r_init_sphere])
integrator.u[10:12] .= rᵢₙᵢₜ
integrator.u[4:6] .= vᵢₙᵢₜ
end
end
```

Revisiting the code I realized that `userdata`

is deprecated since a while. What is the recommended way to solve this now? I’m not very familiar with julia so far so there might be an obvious solution I’m missing.

Thanks!