[proofplan]
We define the ultrafilter by asking which subsets of $\kappa$ have images containing the critical point: $U = \{A \subset \kappa : \kappa \in j(A)\}$. Elementarity transfers the Boolean operations on subsets of $\kappa$ to Boolean operations on their images inside $j(\kappa)$, so $U$ is an ultrafilter. The critical point condition implies that $j$ fixes every ordinal below $\kappa$, which rules out singletons. Finally, for intersections of length $\lambda < \kappa$, the sequence-closure assumption puts the whole sequence in the domain of $j$, and $j(\lambda)=\lambda$ lets elementarity identify the image of the intersection with the intersection of the images.
[/proofplan]
[step:Define the critical point ultrafilter candidate]
Define $U := \{A \subset \kappa : \kappa \in j(A)\}$. This definition is meaningful for every $A \subset \kappa$ because the hypothesis says that every subset of $\kappa$ belongs to $V_\theta$, the domain of $j$.
Since $j$ has critical point $\kappa$, we have $j(\alpha)=\alpha$ for every ordinal $\alpha < \kappa$, and $j(\kappa)>\kappa$. As ordinals are transitive sets ordered by membership, $\kappa < j(\kappa)$ implies $\kappa \in j(\kappa)$. Therefore $\kappa \in j(\kappa)$, so $\kappa \in U$ when $\kappa$ is viewed as the subset $\kappa \subset \kappa$.
[/step]
[step:Show that $U$ decides every subset of $\kappa$]
Let $A \subset \kappa$. Since $A \in V_\theta$, both $A$ and $\kappa \setminus A$ are in the domain of $j$. The equality $\kappa \setminus A = \{\xi \in \kappa : \xi \notin A\}$ is first-order definable from $A$ and $\kappa$. By elementarity, $j(\kappa \setminus A) = j(\kappa) \setminus j(A)$.
Because $\kappa \in j(\kappa)$, exactly one of the two alternatives $\kappa \in j(A)$ and $\kappa \in j(\kappa) \setminus j(A)$ holds. Hence exactly one of $A \in U$ and $\kappa \setminus A \in U$ holds.
Also $\varnothing \notin U$, because $j(\varnothing)=\varnothing$, so $\kappa \notin j(\varnothing)$.
[guided]
We want $U$ to be an ultrafilter, so it must choose exactly one side of every partition of $\kappa$ into a set and its complement. Fix a subset $A \subset \kappa$. The hypothesis that every subset of $\kappa$ belongs to $V_\theta$ ensures that $A$ is in the domain of $j$; the same is true of $\kappa \setminus A$.
The complement here is the complement relative to $\kappa$: $\kappa \setminus A = \{\xi \in \kappa : \xi \notin A\}$. This definition is first-order in the parameters $A$ and $\kappa$. Since $j:V_\theta \to N$ is elementary, it preserves this defining relation, giving $j(\kappa \setminus A) = j(\kappa) \setminus j(A)$.
Now the critical point enters. Since $j(\kappa)>\kappa$, the ordinal $\kappa$ is an element of the ordinal $j(\kappa)$. Therefore $\kappa$ lies in exactly one of the two complementary subsets $j(A)$ and $j(\kappa)\setminus j(A)$ of $j(\kappa)$. By the definition of $U$, this says exactly that precisely one of $A$ and $\kappa \setminus A$ lies in $U$.
Finally, $U$ is proper because $j(\varnothing)=\varnothing$, so $\kappa \notin j(\varnothing)$ and hence $\varnothing \notin U$.
[/guided]
[/step]
[step:Prove closure under finite intersections]
Let $A,B \in U$. Then $\kappa \in j(A)$ and $\kappa \in j(B)$. Since binary intersection is first-order definable, $j(A \cap B)=j(A)\cap j(B)$. Thus $\kappa \in j(A)\cap j(B)=j(A\cap B)$, so $A\cap B \in U$.
It remains to record upward closure. Let $A,B\subset\kappa$ satisfy $A\in U$ and $A\subset B$. If $B\notin U$, then the complement-decision property gives $\kappa\setminus B\in U$. Finite intersection closure would then give $A\cap(\kappa\setminus B)\in U$. Since $A\subset B$, we have $A\cap(\kappa\setminus B)=\varnothing$, contradicting $\varnothing\notin U$. Hence $B\in U$.
The set $U$ is proper, closed under finite intersections, upward closed, and decides every subset of $\kappa$ against its complement. Therefore $U$ is an ultrafilter on $\kappa$.
[/step]
[step:Exclude principal generators]
Let $\alpha < \kappa$. Since $\alpha$ is below the critical point, $j(\alpha)=\alpha$. Hence $j(\{\alpha\})=\{j(\alpha)\}=\{\alpha\}$. Because $\alpha < \kappa$, we have $\kappa \notin \{\alpha\}$. Therefore $\{\alpha\}\notin U$.
No singleton subset of $\kappa$ belongs to $U$, so the ultrafilter $U$ is non-principal.
[/step]
[step:Verify closure under intersections of length less than $\kappa$]
Let $\lambda < \kappa$ be an ordinal, and let $(A_i)_{i<\lambda}$ be a sequence of elements of $U$. Define $\vec A$ to be the function with domain $\lambda$ and codomain the set of all subsets of $\kappa$ such that, for every $i<\lambda$, the value of $\vec A$ at $i$ is $A_i$.
By the sequence-closure hypothesis, $\vec A \in V_\theta$. Since $\lambda<\kappa$, the critical point property gives $j(\lambda)=\lambda$, and for every $i<\lambda$, we have $j(\vec A)(i)=j(A_i)$.
Define $B := \bigcap_{i<\lambda} A_i$. Since each $A_i$ is a subset of $\kappa$, the set $B$ is also a subset of $\kappa$. Therefore $B\in V_\theta$ by the hypothesis that every subset of $\kappa$ belongs to $V_\theta$, so applying $j$ to $B$ is legitimate.
The operation sending a sequence indexed by $\lambda$ to the intersection of its entries is first-order definable from the parameters $\kappa$, $\lambda$, and $\vec A$, namely $B = \{\xi \in \kappa : \text{for every } i<\lambda,\ \xi \in A_i\}$. By elementarity, this formula is transported to $N$ with parameters $j(\kappa)$, $j(\lambda)$, and $j(\vec A)$, so $j(B)=\{\xi \in j(\kappa) : \text{for every } i<j(\lambda),\ \xi \in j(\vec A)(i)\}$.
Since $j(\lambda)=\lambda$, this becomes $j(B)=\bigcap_{i<\lambda} j(A_i)$. For each $i<\lambda$, the assumption $A_i\in U$ gives $\kappa\in j(A_i)$. Therefore $\kappa \in \bigcap_{i<\lambda} j(A_i)=j(B)$. Hence $B\in U$.
Thus $U$ is closed under intersections of fewer than $\kappa$ many of its members. Therefore $U$ is $\kappa$-complete.
[/step]
[step:Conclude the construction]
We have shown that $U$ is an ultrafilter on $\kappa$, that no singleton belongs to $U$, and that $U$ is closed under intersections indexed by every ordinal $\lambda<\kappa$. Hence $U$ is a non-principal $\kappa$-complete ultrafilter on $\kappa$, as required.
[/step]