*Set Array* (0:0) When everything is starting up, (5:311) use variable %Free_IDs[30] as an array, and set element 0 of it to 0. *When a Furre Leaves, Un-Register his/her entry code and release it* (0:10) When a furre leaves the dream, (5:315) set variable %Taken_IDs to the triggering furre's entry code. (5:302) take variable %Sum and add 1 to it. (5:311) use variable %FreeIDs as an array, and set element %Sum of it to %TakenIDs. (5:200) emit message {Entry Code %TakenIDs has been released.} to whoever set off the trigger. *Assign an ID to the Arriving Furre* (0:9) When a furre arrives in the dream, (1:200) and variable %Sum is equal to 0, (5:318) set variable %People to the number of furres in the dream. (5:316) set the triggering furre's entry code to %People. (5:200) emit message {Your ID is %People .} to whoever set off the trigger. *Assign an ID to the Arriving Furre if another one was left when the user left* (0:9) When a furre arrives in the dream, (1:201) and variable %Sum is greater than 0, (5:310) use variable %FreeIDs as an array, and copy element %Sum of it into variable %Entry. (5:316) set the triggering furre's entry code to %Entry. (5:311) use variable %FreeIDs as an array, and set element %Sum of it to 0. (5:304) take variable %Sum and subtract 1 from it. (5:200) emit message {Your ID is %Entry .} to whoever set off the trigger.