π» 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
What you'll be able to do
- Barnaby's Jungle Mod-Rally
Lessons
-
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
Variables: State That Changes Mid-Race
Declare var vs constant, use set, and track a changing lap counter.
-
3
Functions: Name Your Logic
Write functions with parameters and return values and call them from OnBegin.
-
4
If/Else: Branching Race Decisions
Write failable conditions and if/else chains that gate gameplay logic.
-
5
Loops: Repeat Until the Finish Line
Use for and loop/break to iterate collections and run countdowns.
-
6
Strings: Length, Slicing, Name Tags
Measure and build strings to format racer name tags and HUD text.
-
7
Arrays: The Checkpoint List
Create, index (failably), and iterate arrays of devices and players.
-
8
Sum an Array: Total Boost Score
Accumulate over an array to compute totals like collected boosts.
-
9
Count Matching: How Many Racers Passed?
Count array elements matching a condition (racers past checkpoint N).
-
10
Filter an Array: Still-Racing List
Build a new array of only the elements passing a test.
-
11
Maps: [player]int Progress Tracking
Store and update per-player data in [player]int maps β the pattern that carries progress between zones.
-
12
Optionals: Maybe There Is a Vehicle
Declare ?type, unwrap with if(X := MaybeY?), and return false-y absence safely.
-
13
Tuples: Return Lap AND Time Together
Return and destructure tuples for multi-value results.
-
14
Named Tuple Elements: Readable Results
Access tuple elements by position and keep multi-value returns readable.
-
15
GetRandomFloat / GetRandomInt: Roll the Mod Box
Generate random ints/floats for loot tiers, spawn chances, and shuffles.
-
16
Player Position: Distance to the Finish Line
Read GetTransform().Translation, compute distance between players and props.
-
17
Classes & Structs: Model the Racer
Define rally_racer class and mod_reward struct, instantiate, and choose class vs struct.
-
18
Abstract Classes & Override: The Checkpoint Family
Define an abstract base_checkpoint with an overridden OnPassed per subclass.
-
19
Interfaces: Anything Can Be Scoreable
Declare and implement an interface so unrelated classes share a contract.
-
20
Modules: Organize the Jungle Codebase
Split code into modules, control access, and use using { } imports.
-
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
Trigger Device: Checkpoint Sensors
Reference a trigger_device with @editable and Subscribe to TriggeredEvent in Verse.
-
23
Cable Splitter: One Signal, Many Reactions
Fan one event out to multiple devices, and when to do it in Verse instead.
-
24
Player Reference Device: Spotlight the Leader
Capture and display a specific player (race leader) with player_reference_device.
-
25
Player Counter: The Starting-Grid Gate
Gate game flow on how many players are in a zone (lobby ready-check).
-
26
Speaker Device: Jungle Fanfare
Play positional audio from Verse on game events.
-
27
Drum Player: Countdown Beats
Drive rhythmic Patchwork-style audio from Verse for pacing cues.
-
28
Custom Events: The CheckpointPassed Event Bus
Declare event(payload), Signal it, and Await/Subscribe across classes β decoupling checkpoints from the race manager.
-
29
Item Spawner: Banana Boosts on the Track
Spawn pickup items at runtime and cycle what spawns from Verse.
-
30
Item Granter: Custom Reward Items
Grant custom items to a specific player from Verse (the custom-inventory foundation).
-
31
First Verse UI: Lap Counter HUD
Get GetPlayerUI[], AddWidget a text_block, and update it live β the START of the UI arc.
-
32
Canvas Layout: The Rally HUD Panel
Compose a canvas with anchored slots for lap, boost meter, and position.
-
33
Enums & Race Phases: State Machine Intro
Model LobbyβCountdownβRacingβFinished as an enum and switch behavior per phase.
-
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
Scene Graph: Checkpoint as Entity + Component
Wrap checkpoint logic in an entity with a Verse component instead of a bare script.
-
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
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.