All learning paths
Teen 37 lessons ~296 min Printable lesson plan

🐻 North Jungle

Real UEFN island for Codewood Grove: dense jungle terrain with an elevated rally circuit connecting the pin landmarks β€” starting grid clearing (Palm Grove), cliff climb (Clifftop Lookout), rope-bridge canyon crossing with a physics-free swinging gate prop (creative_prop animated

Reading level:
Teen

What you'll be able to do

  • Barnaby's Jungle Mod-Rally

Lessons

  1. 1

    Nouns of Verse: Values and Types

    Read and declare int/float/string/logic values and understand every type used in the rally code.

  2. 2

    Variables: State That Changes Mid-Race

    Declare var vs constant, use set, and track a changing lap counter.

  3. 3

    Functions: Name Your Logic

    Write functions with parameters and return values and call them from OnBegin.

  4. 4

    If/Else: Branching Race Decisions

    Write failable conditions and if/else chains that gate gameplay logic.

  5. 5

    Loops: Repeat Until the Finish Line

    Use for and loop/break to iterate collections and run countdowns.

  6. 6

    Strings: Length, Slicing, Name Tags

    Measure and build strings to format racer name tags and HUD text.

  7. 7

    Arrays: The Checkpoint List

    Create, index (failably), and iterate arrays of devices and players.

  8. 8

    Sum an Array: Total Boost Score

    Accumulate over an array to compute totals like collected boosts.

  9. 9

    Count Matching: How Many Racers Passed?

    Count array elements matching a condition (racers past checkpoint N).

  10. 10

    Filter an Array: Still-Racing List

    Build a new array of only the elements passing a test.

  11. 11

    Maps: [player]int Progress Tracking

    Store and update per-player data in [player]int maps β€” the pattern that carries progress between zones.

  12. 12

    Optionals: Maybe There Is a Vehicle

    Declare ?type, unwrap with if(X := MaybeY?), and return false-y absence safely.

  13. 13

    Tuples: Return Lap AND Time Together

    Return and destructure tuples for multi-value results.

  14. 14

    Named Tuple Elements: Readable Results

    Access tuple elements by position and keep multi-value returns readable.

  15. 15

    GetRandomFloat / GetRandomInt: Roll the Mod Box

    Generate random ints/floats for loot tiers, spawn chances, and shuffles.

  16. 16

    Player Position: Distance to the Finish Line

    Read GetTransform().Translation, compute distance between players and props.

  17. 17

    Classes & Structs: Model the Racer

    Define rally_racer class and mod_reward struct, instantiate, and choose class vs struct.

  18. 18

    Abstract Classes & Override: The Checkpoint Family

    Define an abstract base_checkpoint with an overridden OnPassed per subclass.

  19. 19

    Interfaces: Anything Can Be Scoreable

    Declare and implement an interface so unrelated classes share a contract.

  20. 20

    Modules: Organize the Jungle Codebase

    Split code into modules, control access, and use using { } imports.

  21. 21

    Build CodewoodKit: Your First Shared Module

    Author a reusable helper module (FormatTime, Distance, PickRandom) that later zones import β€” the start of the cross-zone module arc.

  22. 22

    Trigger Device: Checkpoint Sensors

    Reference a trigger_device with @editable and Subscribe to TriggeredEvent in Verse.

  23. 23

    Cable Splitter: One Signal, Many Reactions

    Fan one event out to multiple devices, and when to do it in Verse instead.

  24. 24

    Player Reference Device: Spotlight the Leader

    Capture and display a specific player (race leader) with player_reference_device.

  25. 25

    Player Counter: The Starting-Grid Gate

    Gate game flow on how many players are in a zone (lobby ready-check).

  26. 26

    Speaker Device: Jungle Fanfare

    Play positional audio from Verse on game events.

  27. 27

    Drum Player: Countdown Beats

    Drive rhythmic Patchwork-style audio from Verse for pacing cues.

  28. 28

    Custom Events: The CheckpointPassed Event Bus

    Declare event(payload), Signal it, and Await/Subscribe across classes β€” decoupling checkpoints from the race manager.

  29. 29

    Item Spawner: Banana Boosts on the Track

    Spawn pickup items at runtime and cycle what spawns from Verse.

  30. 30

    Item Granter: Custom Reward Items

    Grant custom items to a specific player from Verse (the custom-inventory foundation).

  31. 31

    First Verse UI: Lap Counter HUD

    Get GetPlayerUI[], AddWidget a text_block, and update it live β€” the START of the UI arc.

  32. 32

    Canvas Layout: The Rally HUD Panel

    Compose a canvas with anchored slots for lap, boost meter, and position.

  33. 33

    Enums & Race Phases: State Machine Intro

    Model Lobby→Countdown→Racing→Finished as an enum and switch behavior per phase.

  34. 34

    MoveTo: The Swinging Gate Hazard

    Animate a creative_prop with MoveTo/TeleportTo β€” the first rung of the animation arc (β†’ ease β†’ prop_mover β†’ control rig).

  35. 35

    Scene Graph: Checkpoint as Entity + Component

    Wrap checkpoint logic in an entity with a Verse component instead of a bare script.

  36. 36

    Custom Component: Reusable Checkpoint Prefab

    Author a custom component, attach it, and save the checkpoint entity as a PREFAB other zones can drop in.

  37. 37

    Capstone: Barnaby's Jungle Mod-Rally

    Assemble every lesson into one playable rally mode: state machine, checkpoints, mod boxes, boosts, HUD, and persistence β€” launchable as a real island.